1

在我的 ASP.NET MVC 项目中,我使用了一个自定义控制器工厂,它实例化一个基于实体框架的数据存储库并将其传递给控制器​​的构造函数。存储库对象实现了 IDisposable,但我应该在哪里调用它的 Dispose 方法?想到的最直接的方法是覆盖控制器的 Dispose 方法并在那里执行,但是由于存储库被注入到控制器中而不是在那里创建,因此在控制器中处理它对我来说似乎不太合适。

4

2 回答 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 回答