C# 声明数据库上下文的控制器级实例
在控制器中,像这样声明数据库上下文实例有什么区别:C# 声明数据库上下文的控制器级实例,c#,entity-framework,C#,Entity Framework,在控制器中,像这样声明数据库上下文实例有什么区别: public class MyController : Controller { private readonly MyDatabaseEntities _context = new MyDatabaseEntities(); public ActionResult Index() { ... } } 与此相比: public class MyController : Controller {
public class MyController : Controller
{
private readonly MyDatabaseEntities _context = new MyDatabaseEntities();
public ActionResult Index()
{
...
}
}
与此相比:
public class MyController : Controller
{
private readonly MyDatabaseEntities _context;
public MyController()
{
_context = new MyDatabaseEntities();
}
public ActionResult Index()
{
...
}
}
我刚刚开始意识到,我在ASP.NET应用程序中处理数据库上下文的方式可能有一段时间不正确(或至少不理想),我正在阅读并思考如何开始使用依赖注入,但对于初学者,我只是想知道我是否在控制器中正确地实例化了数据库上下文
顺便说一句,我仍然在.NETFramework4.7.2中工作。希望我们能很快开始在.NET5中工作 是的,有区别,但你只能在IL中看到。检查这个答案@IrakliGabisonia是否正确;字段初始化器在构造函数之前运行,但从逻辑上讲,您的示例是相同的。如果要迁移到DI,则需要通过构造函数将
MyDatabaseEntities
声明为依赖项。