问题
I have a context to a read-only database for reporting and I am writing lots of code, like this:
using (var context = new ReportingContext())
{
var reportXQuery = context.ReportX.AsNoTracking();
// Do stuff here with query...
}
Is there a way to set the AsNoTracking
bit so that just new
ing up the ReportingContext
above would automatically use AsNoTracking
instead of needing to remember to explicitly call it every query?
回答1:
Try changing your context constructor to this:
public ReportingContext()
{
this.Configuration.AutoDetectChangesEnabled = false;
}
EDIT:
This will after all not help you, as stated on Arthur's blog, it is usable only in particular scenarios:
http://blog.oneunicorn.com/2012/03/12/secrets-of-detectchanges-part-3-switching-off-automatic-detectchanges/
来源:https://stackoverflow.com/questions/18925111/turn-off-ef-change-tracking-for-any-instance-of-the-context