Я пытаюсь создать систему, которая следует хранилищу и шаблонам рабочих единиц, чтобы обеспечить постоянное невежество / модульное тестирование и т. Д. И т. Д. Я ищу совет по работе с Rollback.В идеале я хочу использовать POCO, но я думаю, что мне может понадобиться, по крайней мере, реализовать интерфейс для обеспечения нескольких кусочков.
Итак, допустим, у нас есть два хранилища, один контекст / единица работы.
Я добавляю один элемент, изменяю другой элемент и удаляю третий элемент.Повторите для второго репозитория, затем я вызываю откат.
В прошлом я использовал для этого что-то похожее на DataSet.Каждый объект имеет состояние pendingNew, pendingAeded, pendingDeleted, clean.Существует также копия последней сохраненной версии объекта для отката.
Как бы вы это реализовали?
РЕДАКТИРОВАТЬ:
Хорошо, вот что я думаю, что я на самом деле пытаюсь разобраться.Приготовьтесь к шаблону:)
В конечном итоге проект - WPF MVVM.Итак, мы смотрим на модель на то, что магазин находится здесь.
Я думаю, что я пытался связать модель с идеей хранилища, где, как я думаю, модель должна использовать UOW иРепозитории для предоставления функций, которые должна предоставлять модель.Звучит лучше?
Я хочу полного невежества, поэтому представьте, что мой домен включает в себя Customer, Order и OrderLines.
Скажем, в графическом интерфейсе есть новая кнопка, позволяющая пользователю заполнить данные о клиенте, сведения о заказе и 1-n детали OrderLine.Он нажимает «Сохранить», и они переходят в базу данных, он нажимает «Отмена».
Таким образом, в этом случае модель может запросить у клиента CustomerRepository, затем OrderRepository для нового Order, затем OrderLineRepositoryдля каждой новой строки, затем скажите единице работы, чтобы сохранить их.
Это звучит разумно?Это касается меня, я думаю, что именно здесь определено разделение.Я наполовину соблазн иметь другой API между моделью и репозиториями.Нет, это глупо.
РЕДАКТИРОВАТЬ 2: Это отличная статья, которая вроде немного помогла .