【问题标题】:How to get ApplicationDbContext instance in AccountController for ASP .NET Core 2.0 With Individual Authentication?如何在具有个人身份验证的 ASP .NET Core 2.0 的 AccountController 中获取 ApplicationDbContext 实例?
【发布时间】:2018-12-21 20:29:48
【问题描述】:

我是 ASP .NET Core 的新手,几乎不需要帮助。我创建了带有个人身份验证的 ASP .NET Core 2.0 MVC 项目。现在我想在我的 AccountController 中访问 Current ApplicationDbContext。通过搜索我发现我们可以像这段代码一样使用依赖注入。

    private readonly ApplicationDbContext _context;

    public AccountController(ApplicationDbContext context)
    {
        _context = context;
    }

此方法在除 Scaffolded AccountController 之外的所有其他控制器中都适用,并且在运行项目时会生成以下错误:

InvalidOperationException: Multiple constructors accepting all given argument types have been found in type 'PacePreneur.Controllers.AccountController'. There should only be one applicable constructor.

我知道这个错误是由于这个新的构造函数,因为AccountController 已经有一个构造函数,但我不知道如何使用它来获取当前的 DbContext。我仍在寻找其他解决方案。

PS:对不起,如果这是一个无意义的问题。

【问题讨论】:

  • 只创建一个构造函数,并确保该构造函数接受您的第一个构造函数所做的一切,但添加 ApplicationDbContext 作为另一个参数。因此,如果您的原始构造函数接受参数 a、b,则删除新构造函数并将 dbcontext 添加到接受 a、b 的构造函数现在为 a、b、dbcontext
  • 太棒了.. 它奏效了。真的很感谢:)
  • 不客气。我将根据 Stack Overflow 的指南将我的评论作为答案,如果满意,请随时将其标记为已接受的答案。
  • 我接受了你的回答。
  • 谢谢。祝你有美好的一天。

标签: c# dependency-injection asp.net-core-mvc entity-framework-core asp.net-core-2.0


【解决方案1】:

只创建一个构造函数,并确保该构造函数接受第一个构造函数所做的所有内容,但添加 ApplicationDbContext 作为另一个参数。因此,如果您的原始构造函数接受了参数ab,则删除新构造函数并将dbcontext 添加到接受ab 的构造函数现在为ab、@987654329 @——

【讨论】:

    猜你喜欢
    • 2018-03-23
    • 2018-03-13
    • 2018-01-27
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 2021-06-15
    相关资源
    最近更新 更多