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.