Welchen Unterschied macht .AsNoTracking ()?

Ich habe eine Frage bezüglich der .AsNoTracking() Erweiterung, das ist alles ganz neu und sehr verwirrend.

Ich bin mit einem pro-request-Kontext für eine website.

Viele meiner Einheiten nicht ändern, also nicht nachverfolgt werden müssen, aber ich habe Folgendes Szenario wo ich bin mir nicht sicher, was Los ist auf der Datenbank, oder sogar ob es einen Unterschied macht in diesem Fall.

Diesem Beispiel ist, was ich bin derzeit dabei:

context.Set<User>().AsNoTracking()
//Step 1) Get user
context.Set<User>()
//Step 2) Update user

Dies ist die gleiche wie oben, aber das entfernen der .AsNoTracking() aus Schritt 1:

context.Set<User>();
//Step 1) Get user
context.Set<User>()
//Step 2) Update user

Die Schritte 1 & 2 verwenden Sie den gleichen Kontext, aber zu verschiedenen Zeiten auftreten. Was ich kann nicht herausfinden, ob es da Unterschiede gibt. Schritt 2 ist ein update, ich vermute, dass beide Treffer der Datenbank doppelt sowieso.

Kann mir jemand sagen, was der Unterschied ist?

InformationsquelleAutor der Frage dotnetnoob | 2012-08-31

Schreibe einen Kommentar