Что мне не хватает в шаблоне репозитория? Как вы используете его в реальном мире?

Каждый пример шаблона репозитория, который я видел, связан с очень простым вариантом использования - одним типом объекта и самыми основными операциями CRUD. Затем репозиторий очень часто подключается прямо к контроллеру MVC.

Доступ к данным в реальном мире совсем не такой. Реальные сценарии доступа к данным могут включать сложные графы объектов и некоторую форму транзакционной оболочки. Например, предположим, что я хочу сохранить новый заказ. Это включает запись в таблицы Order, OrderDetails, Invoice, User, History и ItemStock. Все это должно быть выполнено, зафиксировано или откатано. Обычно я передаю что-то вроде IDbTransaction и IDbConnection и объединяю всю операцию в уровень сервиса.

Где шаблон репозитория подходит к этому? Я что-то упустил (возможно, Unit Of Work)? Есть ли какие-нибудь более реалистичные примеры использования репозиториев, чем обычные готовые фрагменты блога?

Оцените любой свет.

6
задан flesh 5 April 2011 в 13:01
поделиться