Jaka jest różnica .AsNoTracking ()?
Mam pytanie dotyczące.AsNoTracking()
rozszerzenie, ponieważ jest to całkiem nowe i dość mylące.
Używam kontekstu dla żądania dla strony internetowej.
Wiele moich podmiotów nie zmienia się, więc nie trzeba ich śledzić, ale mam następujący scenariusz, w którym nie jestem pewien, co dzieje się w bazie danych, a nawet czy ma to znaczenie w tym przypadku.
Ten przykład jest tym, co aktualnie robię:
context.Set<User>().AsNoTracking()
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
To jest takie samo jak powyżej, ale usunięcie.AsNoTracking()
od kroku 1:
context.Set<User>();
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
Kroki 1 i 2 używają tego samego kontekstu, ale występują w różnych momentach. Nie potrafię się zorientować, czy jest jakaś różnica. Ponieważ Krok 2 jest aktualizacją, domyślam się, że oba trafią do bazy danych dwa razy.
Czy ktoś może mi powiedzieć, jaka jest różnica?