私は、リポジトリ パターン、集約ルート、および作業単位のラインでアプリケーションを設計しています。ORM として Entity Framework5 を使用しています。
集約ルートであり、集約ルートではないエンティティとの外部キー関係を持つ新しいエンティティを追加する方法がわからない状況にあります。
前の発言が理にかなっていたかどうかはわかりませんが、ここに例を挙げてみましょう。
Db の Person テーブル (これは私のアプリケーションの集約ルートです)
- 名前
- 住所1
- 国ID
国テーブル (個別にクエリを実行する必要がないため、これは集約ルートではありません)
- 国ID
- 国の名前
私のアプリケーションには、T が集約ルートである汎用リポジトリを実装する PersonsRepository があります。
コードで新しい人を作成するとき、Person オブジェクトの Navigation プロパティに Country を追加する必要があります。新しい Country オブジェクトを作成してそれを Person の Country プロパティに割り当て、Person オブジェクトを保存しようとすると、EF がエラーをスローします。集計ルートではないため、Countries テーブルをクエリできません。
まあ、これは私の実際のシナリオではありませんが、これは私が克服しようとしているものです. ここからどう進めばいいですか?
私の頭に浮かぶ考えの 1 つは、DB のクエリに使用され、それを変更しない汎用の読み取り専用リポジトリを作成することです。
返信と長い投稿を読んでいただきありがとうございます。