Welchen Unterschied macht .AsNoTracking ()?

Ich habe eine Frage zum.AsNoTracking() Erweiterung, da dies alles ziemlich neu und ziemlich verwirrend ist.

Ich verwende einen Pro-Anfrage-Kontext für eine Website.

Viele meiner Entitäten ändern sich nicht, müssen also nicht nachverfolgt werden, aber ich habe das folgende Szenario, in dem ich nicht sicher bin, was in der Datenbank vorgeht oder ob es in diesem Fall einen Unterschied macht.

Dieses Beispiel mache ich gerade:

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

Dies ist das gleiche wie oben, aber das Entfernen der.AsNoTracking() ab Schritt 1:

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

Die Schritte 1 und 2 verwenden denselben Kontext, erfolgen jedoch zu unterschiedlichen Zeiten. Was ich nicht herausfinden kann, ist, ob es einen Unterschied gibt. Da Schritt 2 ein Update ist, schätze ich, dass beide die Datenbank sowieso zweimal treffen werden.

Kann mir jemand sagen, was der Unterschied ist?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage