Способы реализации единицы работы в ASP.NET MVC

В настоящее время я изучаю, как добавить элемент структуры работы в существующее приложение ASP.NET MVC, использующее NHibernate. Я вижу много разнообразия в различных реализациях, и у меня возникают проблемы с определением того, какие методы будут работать лучше всего в данной ситуации.

Чтобы помочь, я подумал, что попрошу сообщество Qaru указать свои любимые способы реализации шаблона Unit of Work в своих приложениях ASP.NET MVC.

Возможно, вы используете IoC для создания сеанса NHibernate при создании своего контроллера, а затем передаете его в репозиторий. Или, может быть, вы создадите единицу рабочего класса/интерфейса. Не стесняйтесь ссылаться на дополнительные ресурсы после описания вашего подхода.

Кроме того, обязательно указывайте любые плюсы и минусы, связанные с вашим методом, если они существуют.

Ответ 1

Я реализовал шаблон Repository/UoW вокруг объектов Entity Framework 4 POCO, и для нас это получилось очень хорошо. Мы показываем только UoW на уровне "Бизнес/Сервис" и в нашем случае должны быть Controller или Presenter для вызова этих служб для выполнения или получения данных.

В нашем примере мы использовали следующую статью: http://msdn.microsoft.com/en-us/library/ff714955.aspx