首页 > 解决方案 > 为什么要创建 DBContext 的私有变量并将其初始化为类的公共构造函数?

问题描述

当我在 Youtube 上学习 ASP.NET 时,作者DBContext通过创建类型的私有变量DBContext并将其初始化为类的公共构造函数来创建一个实例:

public class CustomerController : Controller
{
    private ApplicationDbContext context;

    public CustomerController()
    {
       context = new ApplicationDbContext();
    }

}

所以,我的问题是,如果我只创建私有实例会不会一样DBContext,也就是说,

private ApplicationDbContext = new ApplicationDbContext();

请您解释一下为什么作者决定创建DBContext如上所示的实例以及它有什么好处。

标签: asp.netentity-frameworkdbcontext

解决方案


这只是一种习惯,没有什么特别的原因。如果从构造函数中更改它,我的偏好是在构造函数中进行初始化,否则在初始化时赋值。

编辑 :

以下是相同的初始化:

私有 ApplicationDbContext 上下文;

public CustomerController()
{
   context = new ApplicationDbContext();
}

private ApplicationDbContext = new ApplicationDbContext();

但最终,在某些时候,您的构造函数将被重载,如下所示:

 public CustomerController(IService1 service1, IService2 service2)
    {
       // initialization here probably using DI
       // so it will looks consistant if you keep initialization at one place
       context = new ApplicationDbContext();
    }

推荐阅读