web-dev-qa-db-fra.com

Désactiver le suivi des modifications EF pour toute instance du contexte

J'ai un contexte pour une base de données en lecture seule pour les rapports et j'écris beaucoup de code, comme ceci:

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

    // Do stuff here with query...
}

Existe-t-il un moyen de définir le bit AsNoTracking de telle sorte que new juste le ReportingContext ci-dessus utilise automatiquement AsNoTracking au lieu de devoir se rappeler d'appeler explicitement à chaque requête?

24
Karl Anderson

Essayez de changer votre constructeur de contexte en ceci:

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

MODIFIER:

Après tout, cela ne vous aidera pas, comme indiqué sur le blog d'Arthur, il n'est utilisable que dans des scénarios particuliers:

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

19
Admir Tuzović