在我已經繼承的應用程序中,這是基本控制器中的應用程序中的每個其他控制器都從中繼承。DbContext和連接池
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服務器的連接數量的兩倍,而不是所需的連接數量,如果是後者,那麼這可能不是太多問題。
我不認爲我可以在不久的將來重構這個,當然不是沒有道理的。我應該注意到這種設計有哪些潛在的缺陷?
實體框架6.1.3
哪個版本的EF的是什麼?你能告訴我們MyDbContext的構造函數嗎?這將給出解答你的問題所需的細節。 – sstan
更新了問題 – MrBliz