Entity Framework и DDD - PullRequest
       27

Entity Framework и DDD

2 голосов
/ 28 сентября 2011

Вот моя проблема: сначала я использую модель EntityFramework 4.1, и у меня есть две сборки (Domain и Store)

Домен содержит всю мою бизнес-логику Store управляет всей логикой постоянства в базе данных

Таким образом, я не хочу, чтобы какой-либо запрос структуры сущностей в моем Домене. Я использую хранилище, чтобы открыть Магазин. Хик! Мой edmx находится в магазине, так что TT, который генерирует мои бизнес-классы тоже. Поскольку я хочу, чтобы мои бизнес-классы были в Домене сборки, я переместил TT в Домен и изменил пространство имен генератора кода. Я должен обратиться в мой магазин, чтобы узнать классы моего домена (логика!). Но как вызвать мой репозиторий из моего домена, не создавая циклическую ссылку ...?

Резюме:

  • Справочный домен My Store для ознакомления с бизнес-классами.
  • Справочник моего домена, чтобы узнать хранилище

1 Ответ

4 голосов
/ 28 сентября 2011

Вам нужен репозиторий интерфейс на вашем доменном уровне. Тогда реализация репозитория находится на уровне вашей инфраструктуры и использует EF. Таким образом, уровень вашей инфраструктуры зависит от уровня вашего домена (посредством реализации интерфейса репозитория и создания / поиска сущностей домена), но домен не зависит от уровня инфраструктуры.

Хорошее объяснение этого общего архитектурного паттерна дано в статьях Джеффри Палермо об "луковой архитектуре" .

...