Sobes.tech
Middle

Entity Frameworkтеги трекинг деген эмне?

sobes.tech AI

AIден жооп

Varlıkların izlənməsi (Entity Tracking) — 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: Bəzi xüsusiyyətlər 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.

LINQ sorğuları ilə işləyərkən, varlıqlar standart olaraq 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.