处理在自定义控制器工厂中创建的存储库的正确位置是什么?

时间:2013-06-21 15:12:28

标签: asp.net-mvc dependency-injection idisposable controller-factory

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

2 个答案:

答案 0 :(得分:0)

在您的存储库中,您应该在using语句中使用Entity Framework数据上下文。这意味着在数据访问完成后,将在上下文中调用Dispose方法,关闭连接。

using(var context = new MyDbContext())
{
     //do your data access
}

答案 1 :(得分:0)