Единица работы и контексты нескольких объектов - PullRequest
5 голосов
/ 21 апреля 2011

У меня есть вопрос о единицах работы и реализации репозитория с использованием нескольких контекстов объекта.Мое приложение использует данные из 3 баз данных.Это означает, что у меня есть три объекта, каждый из которых представляет одну базу данных.Мне нужно получить данные из одной базы данных, но мне нужно отфильтровать данные, прочитав критерии фильтрации из двух других баз данных.Я передаю эти три контекста объекта конструктору unitofwork, чтобы у меня был доступ к двум другим контекстам объекта в моем хранилище.Я много искал в интернете, но не смог найти хорошего ответа.Подскажите, пожалуйста, правильно ли я это делаю или есть стандартный способ справиться с подобным сценарием.

Спасибо, Ajay.

1 Ответ

4 голосов
/ 22 апреля 2011

Удержание всех трех контекстов в единице работы - это путь, но реальный смысл такой реализации, вероятно, будет иметь смысл, когда вам нужно будет изменить данные в более чем одной базе данных в одной единице работы / логическойсделка.Пока вам не нужно фиксировать данные в нескольких контекстах одновременно, ваша реализация больше похожа на фабрику контекста, чем на единицу работы.Но это только о названии вашей реализации.Смысл вашей реализации хорош.

Я не согласен с тем, что один репозиторий читает фильтры из других контекстов.Репозиторий должен обрабатывать только свои собственные данные / совокупные корни .Это является обязанностью вызывающей стороны (бизнес-службы) получить фильтры из других контекстов / хранилищ и передать фильтр в основное хранилище, необходимое для получения данных.

...