Нужно ли реализовывать IDisposable при использовании Entity Framework в MVC?

Я вижу во многих примерах MVC , Repository шаблон, Unit of Work и EF , например здесь , что и интерфейсы, и классы реализуют интерфейс IDisposable. Я предполагаю, что этот интерфейс предоставляет только метод Dispose()с двумя перегрузками.

Однако во многих других примерах, сделанных старшими программистами, я не вижу такой реализации. На самом деле мне кажется вполне логичным, что один компонент удаляется при каждом веб-запросе, поскольку каждый запрос получает совершенно новый экземпляр контроллера.

Или даже если это не так, я полагаю, что с помощью фреймворка внедрения зависимостей, такого как Ninject , мы делегируем все эти задачи утилизации самому фреймворку.

Также может случиться так, что реализация IDisposable требовалась в более старой версии платформы EF или MVC.

Кто-нибудь может указать мне правильное направление?

ОБНОВЛЕНИЕ

Автоматическое удаление контекста можно увидеть в многоуровневом приложении со слоем Service и Repository . Предположим, что из обоих компонентов мы возвращаем IQueryableобъектов, если мы попытаемся заполнить объекты из контроллера, перебирая его элементы или вызывая метод ToList(), мы получим ошибку времени выполнения, говорящую о том, что контекст недоступен (закрыт)

5
задан tereško 29 July 2013 в 23:07
поделиться