Sobes.tech
Junior — Middle

Aký je rozdiel medzi metódami include a theninclude pri práci s väzbami v ORM?

sobes.tech AI

Odpoveď od AI

Metóda Include v ORM (napríklad, Entity Framework) sa používa na eager načítanie súvisiacich entít prvého stupňa. To znamená, že umožňuje načítať súvisiace údaje jednej navigačnej vlastnosti spolu s hlavnou entitou.

ThenInclude sa používa na načítanie súvisiacich entít druhého a vyšších stupňov, teda pre zanořené navigačné vlastnosti po Include.

Príklad:

var orders = context.Orders
    .Include(o => o.Customer)           // načítanie súvisiaceho Customer
    .Include(o => o.OrderItems)         // načítanie kolekcie OrderItems
        .ThenInclude(oi => oi.Product) // pre každý OrderItem načítať Product
    .ToList();

Tu Include načíta OrderItems, a ThenInclude načíta s nimi súvisiace Product.

Týmto spôsobom Include začína reťazec načítania súvisiacich dát a ThenInclude ho rozširuje pre vložené väzby.