在MVC中使用实体框架时是否有必要实现IDisposable?

Cic*_*ami 5 c# asp.net-mvc entity-framework idisposable

我在许多关于MVC,存储库模式,工作单元和EF的例子中看到,例如,接口和类都实现了IDisposable接口.我想这个接口只暴露Dispose()了2个重载的方法.

然而,在高级程序员的许多其他例子中,我没有看到这样的实现.实际上对我而言,每个Web请求都会消除一个组件,因为每个请求都会获得一个全新的控制器实例.

或者即使不是这种情况,我想通过使用依赖注入框架(如Ninject),我们将所有这些处理任务委托给框架.

也可能是旧版EF或MVC框架中需要实现IDisposable的情况.

有人可能会指出我正确的方向吗?

UPDATE

可以在具有Service and Repository层的分层应用程序中看到上下文的自动处理.假设我们从两个组件返回IQueryable<T>对象,如果我们尝试从控制器填充对象,通过迭代其项或调用ToList()方法,我们会得到一个运行时错误,说明上下文无法访问(关闭)

Hen*_*man 3

常见的模式是在每个控制器中都有一个存储库的实例,并将 Disposal 链接到控制器的 Dispose() 中。

所以我想说,模式通常是必需的。

然而,在高级程序员所做的许多其他示例中,我没有看到这样的实现。

有以下几种可能性:

  • 这是Demo代码,省略了错误和资源处理。
  • 该模式是在不明显的地方(基类)实现的

举一个具体的例子,我们就可以知道。