При использовании метода AsNoTracking
в запросе LINQ в Entity Framework, следует ли использовать его для каждой таблицы или запроса в целом, чтобы отключить отслеживание изменений для всего запроса?
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, тогда вызов этого метода ничего не сделает.