Я всегда думал о хранилище как о месте для размещения любых методов доступа к базе данных, поскольку идея заключается в том, чтобы отделить код базы данных от всего остального.

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

Строгий шаблон репозитория должен реализовывать только get (), delete () и create () и, возможно, варианты get (), где можно искать или извлекать всю коллекциюДля каждого агрегатного корня характерно наличие одного хранилища.

(из исследований я знаю, что это не общепринятые нормы)

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

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

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

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

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

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

Ответы на вопрос(2)

Ваш ответ на вопрос