2009-03-04 3 views
1

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

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

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

ответ

2

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

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

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

2

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

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

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

Смежные вопросы