1

多くの ddd の例では、単純なものがあります。

Order (集約ルート [AR]) および OrderLine (集約メンバー [AM])

+

Invoice (集約ルート [AR]) および InvoiceLine (集約メンバー [AM])

その例では、注文時に請求書を発行するため、ある AR (請求書) から別の (注文書) への直接参照であり、これは明らかに正しいものです。

ただし、私の場合はもっと複雑です。

さまざまな注文からの多くの OrderLines で請求書を発行します。

したがって、1 つの請求書には、注文 #1 からの注文明細 #1 を参照する InvoiceLine #1、別の注文 #2 からの注文明細 #2 を参照する別の InvoiceLine #2 があります。

たとえば、Order #1 から OrderLine#2 を参照する InvoiceLine はありません。

このケースを解決するにはどうすればよいですか?

正しくない InvoiceLine で OrderLine への参照を保持する必要があるようです。しかし、他にアイデアはありません :/

ご提案いただきありがとうございます。

4

1 に答える 1

0

ある AR から別の AR への実際のオブジェクト インスタンス参照を保持しないでください。エンティティ参照はすべて一時的である必要があります。

識別子のみを保存する必要があります。

あなたの場合、関連する InvoiceLine エントリに注文 ID と OrderLine 番号を保存できます。値オブジェクトの場合もあります。

このようにして、レポジトリから Invoice AR を取得するときに、オブジェクトの取得の問題に直面することはありません。

于 2013-06-05T04:29:32.867 に答える