Entity Frameworkda tracking nima?
sobes.tech AI
AIdan javob
Entity Tracking (Varlikni kuzatuv) — bu Entity Framework Core'da, ma'lumotlar bazasidan yuklangan ob'ektlar bo'yicha o'zgartirishlarni kuzatadigan mexanizm. Kontekst har bir yuklangan ob'ektning holati haqida ma'lumot saqlaydi va o'zgarishlarni saqlash paytida (DbContext.SaveChanges()) SQL so'rovlarini ishlab chiqarishi mumkin.
Asosiy holatlar:
- Added: Ob'ekt kontekstga qo'shilgan, ammo hali ma'lumotlar bazasida mavjud emas.
- Unchanged: Ob'ekt ma'lumotlar bazasidan yuklangan va uning xususiyatlari o'zgartirilmagan.
- Modified: Ob'ektning ba'zi xususiyatlari ma'lumotlar bazasidan yuklanganidan beri o'zgartirilgan.
- Deleted: Ob'ekt ma'lumotlar bazasidan o'chirilishi uchun belgilangan.
- Detached: Ob'ekt kontekst tomonidan kuzatilmaydi.
Standart holatda, LINQ so'rovlar bilan ishlashda ob'ektlar kuzatiladi. Bu Entity Framework'ga qaysi o'zgartirishlarni saqlash kerakligini avtomatik aniqlash imkonini beradi.
Kuzatishni aniq belgilash misoli:
// Kuzatiladigan so'rov
var trackedUser = context.Users.FirstOrDefault(u => u.Id == 1);
// Kuzatilmaydigan so'rov
var untrackedUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id == 2);
AsNoTracking() yordamida kuzatishni o'chirish, agar siz ma'lumotlar bazasida o'zgarishlarni saqlashga ehtiyoj sezmasangiz, so'rovlarning ishlash tezligini oshirishi mumkin, chunki EF ob'ektlarning holatini kuzatish uchun resurs sarflamaydi.