在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)
方法的任何生成覆盖}。
这是模板中的疏忽吗,还是我缺少一些让这不成问题的东西?
答案 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包没有这样做,那就是疏忽。