В архитектуре DDD
у меня есть суммарный корень Order
и агрегат Product
. Когда я хочу, чтобы добавить Product
к определенному Order
, я:Правильный способ получения агрегатов в доменном дизайне
class Order
{
void AddProduct(Product p)
{
this.Products = p;
}
}
Затем OrderRepository
сохраняется в оперативной памяти Order.Products
colleciton к базе данных.
Мой вопрос: как я могу получить конкретное Product
для определенного Order
? Учитывая, что мы не должны вводить в репозитарии лиц, я не знаю, как гидрат Order.Products
коллекции в памяти:
class Order
{
Product GetProduct(int productID)
{
return this.Products.Where(x => x.ProductID == productID);
}
}
Или это то, что принадлежит к OrderRepository
?
Если вы говорите о увлажняющем конкретном объекте продукта из базы данных, он должен быть методом в хранилище. – Kevin
Спасибо, это был мой вопрос. Должен ли я увлажнять объект Product из репозитория или класса Order? Я думаю, теперь мне ясно, что он должен пойти в репозиторий. – user11081980