在我的MVC控制器中,我使用了一個IoC容器(Ninject),但我不確定如何在實體框架ObjectContext中最好地使用它。在ASP.NET MVC控制器中管理Entity Framework ObjectContext的依賴注入的正確方法是什麼?
目前,我做這樣的事情:
using(var context = new MyObjectContext())
{
var stuff = m_repository.GetStuff(context);
}
這是從視圖保持數據庫連接打開最短的時間點來管理的最佳途徑。
如果我要通過Ninject在每個請求的基礎上創建ObjectContext,這顯然會使數據庫連接保持打開狀態的時間過長。
而且上面的代碼將成爲...
var stuff = m_repository.GetStuff(m_myObjectContext);
(當我將處置方面的...?)
我應該創建的ObjectContext的和合格的工廠通過DI?這會放鬆耦合,但如果沒有簡單的方法維護ObjectContext的接口(我知道),這對真正的可測試性有幫助嗎?
有沒有更好的方法?謝謝