著書Applying Domain-Driven Design With Examples in C#の第 4 章 (最初のスケッチ)のポイント4. 同時実行の競合検出が重要であるのに、著者がこの集計を選択した理由がわかりません。独自の集計。
顧客は自分の注文を参照する必要があると思います。
注文は顧客とのみ同一性を持ちます。彼のIDでデータベースから注文を取得する状況は1つもありません。しかし、このロジックを適用すると、私のドメイン モデルには、すべてのエンティティと値オブジェクトを含む複雑な集計がほとんどなくなります。私はこれをしたくありません。
データベースから顧客を取得するとき、顧客の注文を直接ロードしません (遅延ロード)。したがって、これは議論ではありません。
顧客がさまざまなシナリオで使用されている場合は、その参照が 1 つのシナリオでのみ役立つことを確認するために顧客をクリアすることをお勧めします。これが、注文の集計を行い、彼の注文を「間接参照」する理由の 1 つだと思います。
では、集計を選択する本当の理由は何ですか?
もう一つ誤解があります。注文にはさらに OrderLine があります。OrderLine には 1 つの製品があります。OrderLine として集約注文外のオブジェクト (製品) への参照が許可されるのはなぜですか?