web-dev-qa-db-ja.com

コンテキストのインスタンスのEF変更追跡をオフにする

レポート用の読み取り専用データベースのコンテキストがあり、次のように多くのコードを記述しています。

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

    // Do stuff here with query...
}

AsNoTrackingビットを設定して、上記のnewReportingContextingするだけで、明示的に呼び出すことを忘れずにAsNoTrackingを自動的に使用する方法はありますかすべてのクエリ?

24
Karl Anderson

コンテキストコンストラクターを次のように変更してみてください。

public ReportingContext()
{
this.Configuration.AutoDetectChangesEnabled = false;
}

編集:

これは結局、あなたを助けないでしょう、アーサーのブログで述べられているように、それは特定のシナリオでのみ使用可能です:

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

19
Admir Tuzović