Ի՞նչ է տրեքինգը Entity Framework-ում։
sobes.tech AI
Պատասխան AI-ից
Entity Tracking (Նշանակման հետևում) — սա մեխանիզմ է Entity Framework Core-ում, որը հետևում է տվյալների բազայից բեռնված օբյեկտների մեջ կատարված փոփոխություններին: Կոնտեքստը պահպանում է յուրաքանչյուր բեռնված օբյեկտի վիճակի մասին տեղեկություններ և կարող է SQL հարցումներ ստեղծել տվյալների բազան թարմացնելու համար փոփոխությունները պահպանելիս (DbContext.SaveChanges())։
Հիմնական վիճակները՝
- Added: Օբյեկտը ավելացվել է կոնտեքստին, բայց դեռևս չի գոյություն ունենում տվյալների բազայում:
- Unchanged: Օբյեկտը բեռնվել է տվյալների բազայից և նրա հատկությունները չեն փոխվել:
- Modified: Օբյեկտի որոշ հատկություններ փոխվել են տվյալների բազայից բեռնվելուց հետո:
- Deleted: Օբյեկտը նշված է ջնջելու համար տվյալների բազայից:
- Detached: Օբյեկտը հետևում չի առնվում կոնտեքստի կողմից:
Անհատականորեն, LINQ հարցումների ժամանակ, օբյեկտները հետևում են։ Սա թույլ է տալիս Entity Framework-ին ինքնաբերաբար որոշել, թե որ փոփոխությունները պետք է պահպանել:
Օրինակ՝ բացահայտ նշելու համար հետևումը՝
// Հետևվող հարցում
var trackedUser = context.Users.FirstOrDefault(u => u.Id == 1);
// Չհետևվող հարցում
var untrackedUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id == 2);
AsNoTracking() օգտագործելով հետևումը անջատելը կարող է բարելավել կատարողականությունը հարցումների ժամանակ, եթե փոփոխությունները տվյալների բազայում պահելու կարիք չկա, քանի որ EF-ը ռեսուրսներ չի վատնում օբյեկտների վիճակի հետևելու համար։