在我的 ASP.NET MVC 项目中,我使用了一个自定义控制器工厂,它实例化一个基于实体框架的数据存储库并将其传递给控制器的构造函数。存储库对象实现了 IDisposable,但我应该在哪里调用它的 Dispose 方法?想到的最直接的方法是覆盖控制器的 Dispose 方法并在那里执行,但是由于存储库被注入到控制器中而不是在那里创建,因此在控制器中处理它对我来说似乎不太合适。
问问题
375 次
2 回答
0
我想现在有点晚了,但是您可以在 IControllerFactory 的 ReleaseController 方法中执行此操作。看看这个:http ://www.jasinskionline.com/technicalwiki/(S(wvw00ibwlzs5na45orv53qyl))/Custom-Controller-Factory-Putting-Controllers-in-an-External-Assembly-ASP-NET-MVC.ashx ?AspxAutoDetectCookieSupport=1
于 2013-10-19T18:38:58.387 回答
0
在您的存储库中,您应该在 using 语句中使用实体框架数据上下文。这意味着数据访问完成后,将在上下文中调用 Dispose 方法,关闭连接。
using(var context = new MyDbContext())
{
//do your data access
}
于 2013-06-21T16:57:46.233 回答