Middle
Kuidas toimub seotud üksuste laadimine C#-s?
sobes.tech AI
Vastus AI-lt
C#-s saistīto entītu ielāde bieži tiek veikta ar ORM bibliotēkām, piemēram, Entity Framework Core. Galvenie pieejas veidi:
- Steidzama (Eager) ielāde: Saistītie dati tiek ielādēti kopā ar galveno entītu vienā pieprasījumā uz datu bāzi.
// Izmantojot Include metodi steidzamai ielādei var postsWithComments = context.Posts .Include(p => p.Comments) .ToList(); - Izteikta (Explicit) ielāde: Saistītie dati tiek skaidri ielādēti pēc galvenās entītijas saņemšanas.
Vienas navigācijas īpašības gadījumā tiek izmantots// Galvenās entītijas saņemšana var post = context.Posts.Find(1); // Skaidra saistīto komentāru ielāde context.Entry(post) .Collection(p => p.Comments) .Load();.Reference()vietā.Collection().// Saistītā autora skaidra ielāde context.Entry(post) .Reference(p => p.Author) .Load(); - Vēlākā (Lazy) ielāde: Saistītie dati tiek automātiski ielādēti pirmās piekļuves brīdī. Prasa proxy klases konfigurāciju vai atkarību injekciju un ir noklusējuma uzvedība dažās ORM.
Entity Framework Core ir nepieciešama// Ieslēdzot vēlo ielādi var post = context.Posts.Find(1); // Piekļuve Comments izsauks ielādi int commentCount = post.Comments.Count;Microsoft.EntityFrameworkCore.Proxiespakotnes uzstādīšana un.UseLazyLoadingProxies()izsaukšanaDbContextkonfigurācijā. Navigācijas īpašības jābūt deklarētām kāvirtual.
Metodes izvēle ir atkarīga no lietošanas scenārija un kompromisa starp veiktspēju (uzklausījumu skaitu) un ielādēto datu apjomu.