Entity FrameworkのLINQクエリ内でAsNoTracking
メソッドを使用する場合、クエリ全体の変更追跡を無効にするために、各テーブルまたはクエリ全体に対して使用する必要がありますか?Entity FrameworkのLINQクエリ内のAsNoTrackingの範囲
クエリ全体に対する1
var query = (from t1 in db.Table1
from t2 in db.Table2.Where(o => t1.ConditionId == o.ConditionId)
select t1).AsNoTracking()
各テーブルに対する2
var query = (from t1 in db.Table1.AsNoTracking()
from t2 in db.Table2.AsNoTracking().Where(o => t1.ConditionId == o.ConditionId)
select t1)
私の意図は、全クエリの変更の追跡を無効にすることですが、したくありませんそれが必要でない場合は、各テーブルに対して使用してください。
MSDNは、このメソッドのドキュメントにクエリオブジェクトを参照:
このメソッドは、基礎となる クエリオブジェクトのAsNoTrackingメソッドを呼び出すことで動作します。基になるクエリオブジェクトに のAsNoTrackingメソッドがない場合、このメソッドを呼び出すと何も行われません。
これは包括的な答えです。ありがとう。 – Nick