MvcScaffolding创建未处置的可支配资源

时间:2011-12-06 12:18:04

标签: entity-framework-4.1 idisposable dbcontext asp.net-mvc-scaffolding

在EF4.1中使用MvcScaffolding,我看到Controller的第一个生成的行通常是以下字段定义:

public class FooController : Controller
{
    private BarContext context = new BarContext();
    //.....

其中BarContext如下:

 public class BarContext : System.Data.Entity.DbContext

鉴于System.Data.Entity.DbContext实现IDisposable,我很惊讶在[{1}}中找不到可能会处理FooController Dispose(bool)方法的任何生成覆盖}。

这是模板中的疏忽吗,还是我缺少一些让这不成问题的东西?

1 个答案:

答案 0 :(得分:2)

不,你没有遗漏任何东西,你需要覆盖Dispose,如本EF教程中所述: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-basic-crud-functionality-with-the-entity-framework-in-asp-net-mvc-application MVC 3工具更新中的内置脚手架确实生成了覆盖(预发布版本没有,但发布的版本没有),如教程中所述。如果NuGet MvcScaffolding包没有这样做,那就是疏忽。