在我继承的一个应用程序中,有一个基本控制器,在应用程序中的每个其他控制器都会继承它。
由于应用程序的设计方式,每个请求至少创建2个上下文。(它是一个MVC应用程序,在每个页面上都会调用HomeController以及为特定页面调用其他控制器。)
我的问题是,什么时候
如果是前者,那么我将使用比所需数量多两倍的连接到SQL Server,如果是后者,那可能不是太大的问题。
我不认为我可以立即重构它,当然没有理由。我应该意识到这种设计的潜在问题有哪些?
实体框架6.1.3
public BaseController()
{
db = new MyDbContext();
db.Database.Log = s => Debug.Write(s);
}
public MyDbContext()
: base("name=MyDbContext")
{
// hack to force Visual Studio to deploy the Entityframework.SqlServer package
var instance = SqlProviderServices.Instance;
}
由于应用程序的设计方式,每个请求至少创建2个上下文。(它是一个MVC应用程序,在每个页面上都会调用HomeController以及为特定页面调用其他控制器。)
我的问题是,什么时候
DbContext
会创建与SQL Server的连接?它是在上下文创建时立即创建,还是只有在执行查询时才创建?如果是前者,那么我将使用比所需数量多两倍的连接到SQL Server,如果是后者,那可能不是太大的问题。
我不认为我可以立即重构它,当然没有理由。我应该意识到这种设计的潜在问题有哪些?
实体框架6.1.3