Способы реализации единицы работы в 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
Ответ 2
Это фантастический справочник по теме, который я использовал для больших успехов с модульными тестами
http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application