Middle
Kas ir izsekošana Entity Framework?
sobes.tech AI
Atbilde no AI
Entitāšu izsekošana (Entity Tracking) ir mehānisms Entity Framework Core, kas uzrauga izmaines, kas veiktas uz ielādētajiem entitātes objektiem no datu bāzes. Konteksts glabā informāciju par katras ielādētās entitātes stāvokli un var ģenerēt SQL vaicājumus datu bāzes atjaunināšanai, saglabājot izmaiņas (DbContext.SaveChanges()).
Galvenie entitātes stāvokļi:
- Added: Entitāte ir pievienota kontekstam, bet vēl nav datu bāzē.
- Unchanged: Entitāte ir ielādēta no datu bāzes, un tās īpašības nav mainītas.
- Modified: Dažas entitātes īpašības ir mainītas kopš tās ielādēšanas no datu bāzes.
- Deleted: Entitāte ir atzīmēta dzēšanai no datu bāzes.
- Detached: Entitāte netiek uzraudzīta kontekstā.
Pēc noklusējuma, entitātes tiek uzraudzītas, strādājot ar LINQ vaicājumiem. Tas ļauj Entity Framework automātiski noteikt, kuras izmaiņas ir jāglabā.
Piemērs, kā skaidri norādīt uzraudzību:
// Uzraudzīts vaicājums
var trackedUser = context.Users.FirstOrDefault(u => u.Id == 1);
// Neuzraudzīts vaicājums
var untrackedUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id == 2);
Izslēgt uzraudzību ar AsNoTracking() var uzlabot vaicājumu veiktspēju, ja nav nepieciešams saglabāt izmaiņas datu bāzē, jo EF nepatērē resursus uz entitāšu stāvokļa uzraudzību.