Где место, где должен быть вызван метод коммитов UOW? - PullRequest
0 голосов
/ 25 октября 2011

В нашем приложении мы используем единицу работы, шаблон репозитория, MVC3, EF4 POCO. Так что я думаю, что мы должны использовать метод фиксации единицы работы @ на уровне сервиса, потому что логика предметной области идет туда. Так что вы могли бы дать мне немногопосоветуйте об этом

1 Ответ

1 голос
/ 25 октября 2011

Нет, IMO контроллер должен выполнить фиксацию, поскольку именно он отвечает за обновление модели.

Хотя уровень обслуживания действительно может вызывать методы в домене / хранилище, он толькоотвечает на запросы от контроллера.

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

В веб-сценарии обычно должна быть только одна единица работы на HTTP-запрос, тогда как может быть кратнымservices за HTTP-запрос.

Так что я и большинство других пользователей создаем новый UoW для каждого HTTP-запроса и передаем его в репозиторий, поэтому даже если у вас есть несколько репозиториев, они по-прежнему обернутыодним UoW (он же соединение с базой данных).

В идеале для этого следует использовать контейнер DI / IoC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...