Mis on jälgimine Entity Frameworkis?
sobes.tech AI
Vastus AI-lt
Entiteedi jälgimine (Entity Tracking) on mehhanism Entity Framework Core'is, mis jälgib andmebaas laaditud entiteedivormide tehtud muudatusi. Kontekst salvestab teavet iga laaditud entiteedi staatuse kohta ning võib genereerida SQL-päringuid andmebaasi uuendamiseks, kui muudatused salvestatakse (DbContext.SaveChanges()).
Peamised entiteedi seisundid:
- Added: Entiteet on lisatud konteksti, kuid veel ei eksisteeri andmebaasis.
- Unchanged: Entiteet on laaditud andmebaasist ning selle omadused on muutmata.
- Modified: Mõned entiteedi omadused on muutunud alates selle laadimisest andmebaasist.
- Deleted: Entiteet on märgitud kustutamiseks andmebaasist.
- Detached: Entiteet ei ole konteksti poolt jälgitud.
Vaikimisi jälgitakse entiteete LINQ-päringutega töötades. See võimaldab Entity Frameworkil automaatselt määrata, milliseid muudatusi tuleb salvestada.
Näide selgelt märgitud jälgimisest:
// Jälgitav päring
var trackedUser = context.Users.FirstOrDefault(u => u.Id == 1);
// Jälgimata päring
var untrackedUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id == 2);
Jälgimise keelamine AsNoTracking() abil võib parandada päringute jõudlust, kui teil ei ole vaja muudatusi andmebaasi salvestada, kuna EF ei kuluta ressursse entiteetide staatuse jälgimiseks.