关闭任何上下文实例的EF更改跟踪

Kar*_*son 25 c# entity-framework change-tracking entity-framework-4.1

我有一个用于报告的只读数据库的上下文,我正在编写大量代码,如下所示:

using (var context = new ReportingContext())
{
    var reportXQuery = context.ReportX.AsNoTracking();

    // Do stuff here with query...
}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法来设置AsNoTracking一下,让刚new荷兰国际集团了ReportingContext上面会自动使用AsNoTracking,而不是需要记住显式调用它的每一个查询的?

Adm*_*vić 19

尝试将您的上下文构造函数更改为:

public ReportingContext()
{
this.Configuration.AutoDetectChangesEnabled = false;
}
Run Code Online (Sandbox Code Playgroud)

编辑:

毕竟这不会帮助你,正如Arthur的博客所述,它仅在特定场景中可用:

http://blog.oneunicorn.com/2012/03/12/secrets-of-detectchanges-part-3-switching-off-automatic-detectchanges/

  • 你能详细说一下'AutoDetectChangesEnabled = false`和`AsNoTracking`之间的区别吗? (3认同)