うまくいけば、この架空の例が私の問題を説明するでしょう:
ソフトウェア製品に関する苦情や、製品に関するその他の多くの属性を追跡するシステムを作成しているとします。この場合、SoftwareProduct は集約ルートであり、Complaints は製品の子としてのみ存在できるエンティティです。つまり、ソフトウェア製品がシステムから削除された場合、苦情も削除されます。
システムには、単一の SoftwareProduct のさまざまな側面を表示する Web ページのようなダッシュボードがあります。ダッシュボードの 1 つのセクションには、グリッドのような形式で苦情のリストが表示され、各苦情について非常に高レベルの情報のみが表示されます。管理者タイプのユーザーがこれらの苦情のいずれかを選択すると、単一の苦情の詳細を編集できる編集画面が表示されます。
問題は、編集画面で単一の苦情を取得し、編集目的で表示できるようにするための最良の方法は何ですか? SoftwareProduct は既に集約ルートとして確立されているため、苦情への直接アクセスは許可されないことに注意してください。また、システムは NHibernate を使用しているため、eager loading はオプションですが、SoftwareProduct を介して 1 つの Complaint をeager load しても、Complaints コレクションにアクセスするとすぐに残りのコレクションが読み込まれると理解しています。では、Complaints コレクション全体をロードするオーバーヘッドを発生させずに、SoftwareProduct を介して単一の Complaint を取得するにはどうすればよいでしょうか?