質問: EntityState.Modified; dbContext.SaveChanges(); ``` しかし、その後、EFはすべての子のエントリーを複製します。だから、DBには私は新しいユーザーがいます。ユーザーがまだ存在しない場合は、私が望むものかもしれません。しかし、このユーザーは都市が変更されていないのに新しい都市を指しています。さらに、サプライヤはデータベースに2回存在します。 **なぜ`AsNoTracking()`ですか?** 私は`AsNoTracking()`を使用し`AsNoTracking()` 。ユーザーが実際のエンティティを見るからです。彼が何かを変更すると、それはすべてのエンティティに直接影響を与えます:first_nameを "Peter"に "Foo" "Bar"をユーザとして持つすべてのエントリを設定し、次に "Peter" "Bar"をユーザとして設定します。しかし、変更されたエンティティだけがこの変更を行う必要があります。コンテキスト内の「実」エンティティのメンバ変数を直接変更するため、これが起こると思います。 **質問** 既存の子エンティティを再作成せずに、変更したエンティティを再接続するにはどうすればよいですか。 または `AsNoTracking()`を使用せずに私が望むものを達成するにはどうすればいいですか?
回答: 私はあなたと同じことをしようとしています。私はあなたのリアソン思考をかなりよく理解していませんが、おそらくこの文書が参考になります。 また、私はあなたの例では.Add()を実行する必要はないと確信しています。その場合、ほとんどのケースが新しいレコードになります。適用される場合は "Unchanged"になります。 関連するプロパティを再接続する方法をまだ研究しています(私の最悪の問題は1toNの関係です)。 「既存のエンティティをコンテキストにアタッチする」の下にあるチェックボックスをオンにすると、恐らく解決策が導き出されます。 私もコードプロジェクトで興味深い記事を探しています: https ://www.codeproject.com/Articles/33088/Reattaching-Entity-Graphs-with-the-Entity-Framewor この男はエンティティフレームワーク上にノードグラフを再接続する拡張機能を考案したようです。「ここにはEFの機能がありません」などです。私はそれを試してみましょう。 よろしく。