MvcScaffolding создает доступные ресурсы, которые не утилизируются
Используя MvcScaffolding с EF4.1, я вижу, что первой сгенерированной строкой контроллера обычно является следующее определение поля:
public class FooController : Controller
{
private BarContext context = new BarContext();
//.....
где BarContext
как следует:
public class BarContext : System.Data.Entity.DbContext
При условии System.Data.Entity.DbContext
инвентарь IDisposable
Я удивлен, что не нашел сгенерированного переопределения в FooController
для Dispose(bool)
метод, который может позаботиться об утилизации context
,
Это упущение в шаблонах, или я что-то упускаю, что делает это не проблемой?
1 ответ
Нет, вы ничего не пропустили, вам нужно переопределить 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 Tools Update генерируют переопределение (предварительные версии этого не делали, но выпущенная версия делает), как отмечено в учебнике. Если пакет NuGet MvcScaffolding этого не делает, это упущение.