Middle
Ինչպես է տեղի ունենում կապված մարմինների բեռնումը C#-ում?
sobes.tech AI
Պատասխան AI-ից
Կապված գոյությունների բեռնումը C#-ում հաճախ կատարվում է ORM գրադարանների, ինչպիսիք են Entity Framework Core-ը։ Հիմնական մոտեցումները՝
- Արագ (Eager) բեռնում: Կապված տվյալները բեռնում են հիմնական գոյության հետ միասին մեկ տվյալների բազայի հարցում:
// Include մեթոդի օգտագործմամբ արագ բեռնում var postsWithComments = context.Posts .Include(p => p.Comments) .ToList(); - Արագ (Explicit) բեռնում: Կապված տվյալները բացահայտ բեռնում են հիմնական գոյությունը ստանալուց հետո.
Միայնակ նավիգացիոն հատկությունների համար օգտագործվում է// Հիմնական գոյության ստացում var post = context.Posts.Find(1); // Բացահայտ կապակցված մեկնաբանությունների բեռնում context.Entry(post) .Collection(p => p.Comments) .Load();.Reference()փոխարեն.Collection():// Բացահայտ կապակցված հեղինակի բեռնում context.Entry(post) .Reference(p => p.Author) .Load(); - Lazy (հնազանդ) բեռնում: Կապված տվյալները ավտոմատ բեռնում են առաջին մուտքի ժամանակ:
Entity Framework Core-ում անհրաժեշտ է տեղադրել// Lazy բեռնում ակտիվացված var post = context.Posts.Find(1); // Comments մուտքը բերում է բեռնում int commentCount = post.Comments.Count;Microsoft.EntityFrameworkCore.Proxiesփաթեթը և կանչել.UseLazyLoadingProxies()DbContextկոնֆիգուրացիայում։ Նավիգացիոն հատկությունները պետք է հայտարարվեն որպեսvirtual։
Ընտրությունը կախված է օգտագործման սցենարից և բեռնումների քանակի և տվյալների ծավալի միջև բալանսից։