Entity Framework-də izləmə nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Entity Tracking (Varlıq İzləmə) — bu Entity Framework Core-da verilənlər bazasından yüklənmiş varlıq obyektlərində edilən dəyişiklikləri izləyən mexanizmdir. Kontekst hər yüklənmiş varlığın vəziyyəti haqqında məlumat saxlayır və dəyişiklikləri yadda saxlayarkən (DbContext.SaveChanges()) SQL sorğuları yarada bilər.
Əsas varlıq vəziyyətləri:
- Added: Varlıq kontekstə əlavə olunub, amma hələ verilənlər bazasında mövcud deyil.
- Unchanged: Varlıq verilənlər bazasından yüklənib və onun xüsusiyyətləri dəyişməyib.
- Modified: Varlığın bəzi xüsusiyyətləri verilənlər bazasından yükləndikdən sonra dəyişib.
- Deleted: Varlıq silinmək üçün işarələnib.
- Detached: Varlıq kontekst tərəfindən izlənmir.
Əsasən, LINQ sorğuları ilə işləyərkən varlıqlar izlənir. Bu, Entity Framework-un hansı dəyişikliklərin saxlanmalı olduğunu avtomatik müəyyən etməsinə imkan verir.
Açıq şəkildə izləmə göstəricisi nümunəsi:
// İzlənən sorğu
var trackedUser = context.Users.FirstOrDefault(u => u.Id == 1);
// İzlənməyən sorğu
var untrackedUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id == 2);
AsNoTracking() istifadə etməklə izləməni deaktiv etmək, əgər verilənlər bazasında dəyişiklikləri saxlamağa ehtiyac yoxdursa, sorğuların performansını artıra bilər, çünki EF varlıqların vəziyyətini izləmək üçün resurs sərf etmir.