5 votes

Pourquoi la valeur de AutoDetectChangesEnabled n'est-elle pas fixée à false par défaut ?

Je me demandais pourquoi le AutoDetectChangesEnabled sur le DbContext est définie à false par défaut.

Je veux insérer en masse dans mon contexte et, comme vous le savez peut-être, le fait de désactiver l'autodétection permet d'obtenir de bien meilleures performances.

Je veux dire, si je sais quand détecter les changements de mon contexte, y a-t-il une raison pour laquelle je ne devrais pas définir AutoDetectChangesEnabled a false ?

4voto

phil soady Points 4463

Je pense qu'il est probable qu'ils voulaient que le comportement le plus courant et le plus utile fonctionne dès le départ.

var mycontext = new DemoContext();
var myEntity = myContent.Thinhymybobs.find(akey);
myEntity.PropX = newvalue;
mycontext.saveChnages();

La mise à jour envoyée à la base de données tient compte du delta et la déclaration de mise à jour est utilisée en conséquence. Cela est donc convivial pour la base de données.

Lorsque l'on effectue des opérations "en masse" sur une base de données, les questions relatives aux performances sont normalement une évidence. Il est donc normal de se demander s'il est possible de désactiver le changement ou même d'utiliser le suivi.

Cet article peut vous intéresser. État d'une entrée. http://msdn.microsoft.com/en-us/data/jj592676.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X