Sobes.tech
Middle

Je Include načítanie zbrklé, lenivé alebo explicitné?

sobes.tech AI

Odpoveď od AI

Include v Entity Framework je mechanizmus Eager Loading.

Eager Loading znamená, že súvisiace entity sa načítavajú z databázy spolu s požadovanou entitou v jednom alebo viacerých dotazoch pri prvom prístupe k údajom.

Jeho použitie zabraňuje problému "N+1 dotazov", ktorý môže nastať pri lazy loadingu, keď sa na prístup ku každej súvisiacej entite vykoná samostatný dotaz do databázy.

Syntax:

// Eager loading objednávok spolu s klientmi
var customersWithOrders = context.Customers.Include(c => c.Orders).ToList();

Porovnanie s inými typmi načítania:

Typ načítania Popis Kedy použiť
Eager (Include) Načítanie súvisiacich dát spolu s hlavnými v jednom alebo viacerých dotazoch. Keď sú súvisiace dáta takmer vždy potrebné.
Lazy Načítanie súvisiacich dát iba pri prvom prístupe. Keď sú súvisiace dáta nie sú vždy potrebné.
Explicitne Rukovätné načítanie súvisiacich dát po získaní hlavnej entity. Keď sú súvisiace dáta potrebné v určitom momente po načítaní hlavnej entity.