Middle
Hogyan történik a kapcsolódó entitások betöltése C#-ban?
sobes.tech MI
Válasz az MI-től
A kapcsolódó entitások betöltése C#-ban gyakran ORM-könyvtárak, például az Entity Framework Core segítségével történik. A fő megközelítések:
- Szorgalmas (Eager) betöltés: A kapcsolódó adatok a fő entitással együtt töltődnek be egy adatbázis-kérdésben.
// Include módszer használata a szorgalmas betöltéshez var postsWithComments = context.Posts .Include(p => p.Comments) .ToList(); - Explicit (kifejezett) betöltés: A kapcsolódó adatok kifejezetten töltődnek be a fő entitás megszerzése után.
Egyedi navigációs tulajdonságok esetén// A fő entitás megszerzése var post = context.Posts.Find(1); // Kifejezett kapcsolódó kommentek betöltése context.Entry(post) .Collection(p => p.Comments) .Load();.Reference()használatos a.Collection()helyett.// Kapcsolódó szerző kifejezett betöltése context.Entry(post) .Reference(p => p.Author) .Load(); - Lusta (Lazy) betöltés: A kapcsolódó adatok automatikusan betöltődnek az első hozzáféréskor. Proxy-k vagy függőség-injektálás konfigurációját igényli, és néhány ORM-ben alapértelmezett viselkedés.
Entity Framework Core esetén szükséges telepíteni a// Engedélyezett lusta betöltéssel var post = context.Posts.Find(1); // A Comments elérésével betöltődik int commentCount = post.Comments.Count;Microsoft.EntityFrameworkCore.Proxiescsomagot és meghívni a.UseLazyLoadingProxies()metódust aDbContextkonfigurációjában. A navigációs tulajdonságokatvirtual-ként kell deklarálni.
A módszer kiválasztása a felhasználási forgatókönyvtől és a teljesítmény (kérdések száma) és az adatbetöltés mennyisége közötti kompromisszum függvénye.