Репозиторий, объекты Entity и объекты Domain - PullRequest
1 голос
/ 05 марта 2009

В моих репозиториях я делаю назначения объектам моего домена из запросов сущностей Linq. Затем у меня есть сервисный слой, который будет работать с этими объектами, возвращаемыми из репозиториев.

Должны ли мои объекты Домена находиться в хранилище, как это? Или мои репозитории должны быть ограничены объектами и доступом к данным, и вместо этого мой уровень обслуживания назначает объекты домена?

Выполнение всех назначений в репозитории кажется более простым, но теперь различие между моей базой данных и объектами домена не очевидно. Что такое правильная практика здесь? ТИА

Ответы [ 2 ]

2 голосов
/ 05 марта 2009

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

Речь идет о отображении данных. Проверьте эту ссылку: http://www.martinfowler.com/eaaCatalog/repository.html

Также проверьте этот связанный вопрос: IRepository путаница на возвращаемых объектах . Я использовал похожий маппер, но сделал так, чтобы он работал на уровне IQueryable, что позволило делать довольно интересные вещи при работе с объектом домена после сопоставления.

2 голосов
/ 05 марта 2009

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

Я сделал приложения с заданиями в репозиториях и другие в слое сервиса, и еще один, у меня был отдельный слой преобразования (это не было преобразование один в один, и объекты были сложными).

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

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