Sobes.tech
Middle

Ի՞նչ է տրեքինգը 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-ը ռեսուրսներ չի վատնում օբյեկտների վիճակի հետևելու համար։