Это в порядке, чтобы обойти шаблон репозитория для сложных запросов?

Это мое понимание о DDD на данный момент:

  • Строгий шаблон репозитория должен только реализовать Get (), удалять () и создавать (), И, возможно, варианты получения (), где можно найти или получить целую коллекцию
  • , для каждого совокупного корня распространена для каждого совокупного корня, чтобы иметь один репозиторий

(от исследования, я знаю, что они не являются универсальными номинальными нормами)

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

Как этот запрос должен быть реализован?

  1. То, что я делаю сейчас, на самом деле имеет репозиторий для этого запроса и запросов с соответствующими функциональными возможностями (некоторые не согласны и говорят, что репозиторий не является уровнем запроса).

  2. Используйте только репозиторий для продукта и пользователя, возьмите все записи и делайте все в памяти (это звучит неправильно)

  3. иметь запрос (LINQ или SQL), чтобы быть внутри сервиса, не используя репозиторий, связанный с агрегатами совсем.

Есть ли другие способы?

18
задан Jayantha Lal Sirisena 3 September 2011 в 07:14
поделиться