【发布时间】:2013-08-14 11:54:04
【问题描述】:
在 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 方法,那么调用这个方法什么也做不了。
【问题讨论】:
标签: entity-framework