.AsNoTracking()
これはすべて非常に新しく、非常に紛らわしいため、拡張機能について質問があります。
Web サイトにリクエストごとのコンテキストを使用しています。
多くのエンティティは変更されないため、追跡する必要はありませんが、次のシナリオでは、データベースに何が行われるか、またはこの場合に違いが生じるかどうかさえもわかりません.
この例は、私が現在行っていることです:
context.Set<User>().AsNoTracking()
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
これは上記と同じですが、.AsNoTracking()
ステップ 1 から を削除します。
context.Set<User>();
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
ステップ 1 と 2 は同じコンテキストを使用しますが、異なるタイミングで発生します。私が解決できないのは、違いがあるかどうかです。ステップ 2 は更新であるため、どちらもデータベースに 2 回ヒットすると思います。
違いは何ですか?