Реализация репозитория для EF4 с использованием DDD и IoC

Думаю, я хожу по кругу.

Я работаю над решением MVC 3 с использованием EF4 и POCO (сначала базы данных) и IoC. Мой репозиторий и шаблоны UoW в основном были заимствованы из этой статьи и этой статьи .

Мое решение состоит из следующих проектов:

Реализации:

  • Presentation ( Сайт MVC)
  • Доменные службы (бизнес-уровень)
  • Репозиторий домена (доступ к данным)
  • Контекст домена (мой edmx EF4 и сгенерированный контекст)
  • Модели домена (мои POCO, созданные в EF4)

Интерфейсы:

  • Интерфейсы доменных служб (интерфейсы бизнес-уровня)
  • Интерфейсы репозитория домена (интерфейсы доступа к данным)
  • Интерфейсы контекста домена (интерфейсы для сгенерированного контекста EF4)

И, наконец, проект IoC, который связывает все вместе.

Если вы заметили в первой статье, автор упоминает об удалении зависимости от ObjectSet от доменных служб. Я предполагаю, что это сделано для проверки. Проблема с этим, однако, заключается в том, что это мешает возможности выполнять сложные запросы из служб домена, потому что IObjectSet и IEnumerable (возвращаемые большинством методов в репозитории) не отменяют методы для сложных запросов.

Означает ли это, что Мне нужно выполнять сложные запросы в моем репозитории? Следует ли мне отказаться от таких методов, как public T Single (Expression > where) , и придерживаться таких методов, как public T GetUserById (int id) ?

Если это не так, то как мне выполнять сложные запросы , такие как этот , на моем уровне обслуживания?

Глядя на схему моего решения выше и на вопросы, которые у меня есть, я двигаюсь в правильном направлении , или я создаю себе проблемы?

Заранее спасибо.

5
задан Community 23 May 2017 в 11:52
поделиться