私は鶏と卵の問題がありますが、それは自明なので、すべての主キーがアイデンティティフィールドである集約ルートを保存するための通常のパターンは何かを尋ねると思いました。Entity Framework 4.1:複数のテーブルを含むデータコンテキストから1つのテーブルを保存することは可能ですか?
私は典型的な接触エンティティを持っている:
両方のアドレスがアドレステーブルに格納されており、唯一の主キーがIDフィールドですCustomer {
HomeAddress {
}
WorkAddress {
}
}
。すべてのフィールドを照合して、一意のアドレスレコードを保持します。ここで
が問題だ:私は外部キーをフックアップするためのアドレス識別フィールドを取得する必要が- ので、私はそうでない場合、私は、既存のことを読み込み、それはユニークだ場合にのみ、お客様の記録を保存する前にアドレスレコードを保存します住所。
- アドレスが顧客と同じDCにある場合、顧客はあまりに早く保存します(すべてのレコードが設定されているわけではありません)。
- アドレスが別のDCにある場合、アドレスは別のDCにあります。 2つのDCに関連付けられたエンティティを持つことはできません(1つで開くことはできません。次に別のものに保存してください)。
したがって、私はすべてのアドレスに対して別々のリポジトリが必要であり、もう一方のDCのアドレスに戻り、同じ情報のためにデータベースに冗長呼び出しを行います。
Entity Framework 4.1のデータコンテキスト/コンテナにレコードを部分的に保存する方法はありますか?たとえば、同じDC内にあるときにアドレスを単独で保存するにはどうすればよいですか?