Sobes.tech
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.