0

このグラフを想像してみてください。

デバイス1..* OperatingEnvironment 1 .. * NetworkEndpoint

分離エンティティグラフをメモリ内に構築し、OperatingEnvironmentが存在し、NetworkEndpointが存在するが、別のOperatingEnvironmentに割り当てられているときに、グラフのルートにあるデバイスが新しい場合、EFはこれをすべて把握しますか?

私が「これを理解する」と言うとき、それは単にグラフを歩いて実行する場合です(IfExist?MergeValues:AddNew)エンティティはすべて外部キーを持っているので、関係はプロパティのマージ中に自動的に自動的に再割り当てされるはずです。

これはEFの仕組みですか、それとも自分のグラフをたどってこのロジックを適用する必要がありますか?これを行う場合、メモリ内のグラフは弱くリンクする必要があります。つまり、ナビゲーションプロパティを介したリンクを避け、代わりに外部キー値を使用します。そうしないと、EFが1つのエンティティを追加するとすぐに、グラフ全体が追加されます。ナビゲーションプロパティをクロールします。

ありがとう-それが泥のようにはっきりしていることを願っています。

4

1 に答える 1

1

あなたは自分でそれをしなければなりません。EFには、エンティティがデータベースに存在するかどうかを検出するための内部ロジックがありません。

于 2012-06-26T08:30:10.277 に答える