1
我在MVC4應用程序和Ninject.MVC3中使用EF 4.3。 控制器使用-Repository開關進行MVCscaffolded。 MVCScaffolder使用EF進行數據訪問,其中DbContext派生對象始終作爲每個腳手架存儲庫中的數據成員「新建」,從而創建存儲庫類(和相應的IRepository接口)。MVC3腳手架存儲庫中的Singleton DbContext派生對象
MyContext context = new MyContext();
腳手架控制器的性質使得對於每個控制器,您通常也會獲得相應的存儲庫。
問題:
1)是否有意義有對你有一個控制器,每個域對象存儲庫? 與存儲庫模式相比,這似乎違反直覺,其中只有聚合根應該暴露於
。
2)是否有意義有每次產生的 存儲庫對象被實例化一個的DbContext派生對象的新實例或是否有意義有一個與DI容器上註冊的 的DbContext派生對象的單一實例應用程序啓動並解決它在 單庫,像這樣:
Bind<MyContext>().To<MyContext>().InSingletonScope(); //ninject code on app startup
//resolve context in repositories:
MyContext context = ServiceLocator.Current.GetInstance<MyContext>();
有什麼缺點持有到一個派生的DbContext對象作爲 單爲應用程序的生命週期?
謝謝。
這就是我也傾向於。謝謝確認 – 2012-04-07 17:49:31