AsNoTracking在Entity Framework中的LINQ查询中使用该方法时,是否应该针对每个表或整个查询使用该方法以禁用整个查询的更改跟踪?
1.反对整个查询
var query = (from t1 in db.Table1
from t2 in db.Table2.Where(o => t1.ConditionId == o.ConditionId)
select t1).AsNoTracking()
Run Code Online (Sandbox Code Playgroud)
2.对着每张桌子
var query = (from t1 in db.Table1.AsNoTracking()
from t2 in db.Table2.AsNoTracking().Where(o => t1.ConditionId == o.ConditionId)
select t1)
Run Code Online (Sandbox Code Playgroud)
我的目的是禁用整个查询的更改跟踪,但如果不需要,则不希望对每个表使用它.
MSDN引用此方法的文档中的查询对象:
此方法通过调用基础查询对象的AsNoTracking方法来工作.如果基础查询对象没有AsNoTracking方法,则调用此方法将不执行任何操作.