ロジックwrtエンティティは、その「ビジネスドメイン」に制限する必要があります。エンティティ内の他のエンティティ/インフラストラクチャを更新することは非常に悪い考え/設計です。
すなわち
Order --> OrderLines
Order {OrderId, OrderDate, Customer, OrderLines, ...}
OrderLines {OrderLineId, Order, Item, Price, Quantity, Deliveries, DeliveredQuantity, ...}
OrderDelivery --> OrderDeliveryLines
OrderDelivery {OrderDeliveryId, Customer, DeliveryDate, ...}
OrderDeliveryLines {OrderDeliveryLineId, OrderDelivery, OrderLine, DeliveryQuantity, ....}
orderLineの配送数量は、それに対して行われたすべての配送の合計です。
したがって、上記の場合、注文を介して配達を作成/更新することは誤りです(つまり、注文プロセス)。配達のdeliveryLineは、(配達プロセス内で)配達された数量の対応するorderLineに対して作成されます。
トランザクションの境界が明確に定義されている場合、プロセスロジックが「ビジネスドメイン」に忍び寄る必要はありません。
http://domaindrivendesign.org/