Originally I believed that
context.Configuration.AutoDetectChangesEnabled = false;
would disable change tracking. But no. Cur
What about simply exposing method like this on your derived context and use it for queries:
public IQueryable GetQuery() where T : class {
return this.Set().AsNoTracking();
}
Setting AsNoTracking
globally is not possible. You must set it per each query or per each ObjectSet
(not DbSet
). The latter approach requires using ObjectContext
API.
var objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
var set = objectContext.CreateObjectSet();
set.MergeOption = MergeOption.NoTracking;
// And use set for queries