При проектировании, основанном на домене, Order и OrderLines всегда рассматриваются как совокупность, где Order является корнем. Обычно, когда заказ создан, его нельзя изменить. Однако в моем случае это возможно. Вместо этого каждый заказ имеет состояние, определяющее, можно ли изменить порядок.
В этом случае являются ли и Order, и OrderLines их собственным «совокупным корнем»? Мне нужно иметь возможность обновлять строки заказов, поэтому я полагаю, что у них должен быть собственный репозиторий. Но я не хочу извлекать строки заказа и сохранять их без заказа. Таким образом, это указывает на то, что все еще существует агрегат, в котором Order является корнем с фабричным методом для создания строк заказа (Order.CreateOrderLine (количество, текст,…).
Другой подход может заключаться в обновлении Order при изменении коллекции строк заказов и последующем вызове UpdateOrder (Order). Мне понадобится какой-то способ определить, что должна обновляться только коллекция, а не сам заказ (с использованием Entity Framework). Что вы думаете?