Junior — Middle
Mi a különbség az include és theninclude módszerek között az ORM-ben való kapcsolatok kezelésénél?
sobes.tech MI
Válasz az MI-től
Az ORM-ben (például Entity Framework) az Include módszer a kapcsolódó első szintű entitások mohó betöltésére szolgál. Ez lehetővé teszi, hogy egy navigációs tulajdonság kapcsolódó adatait a fő entitással együtt töltse be.
A ThenInclude a második és magasabb szintű kapcsolódó entitások betöltésére szolgál, azaz beágyazott navigációs tulajdonságokra az Include után.
Példa:
var orders = context.Orders
.Include(o => o.Customer) // kapcsolódó Customer betöltése
.Include(o => o.OrderItems) // OrderItems kollekció betöltése
.ThenInclude(oi => oi.Product) // minden OrderItem esetén a Product betöltése
.ToList();
Ebben az esetben az Include betölti az OrderItems-t, és a ThenInclude a kapcsolódó Product-okat.
Így az Include elindítja a kapcsolódó adatok betöltésének láncát, amit a ThenInclude bővít ki beágyazott kapcsolatokra.