【发布时间】: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