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.

Является ли это упущением в шаблонах, или я что-то упускаю, что делает это не проблемой?


person spender    schedule 06.12.2011    source источник


Ответы (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 этого не делает, это недосмотр.

person tdykstra    schedule 06.12.2011