Middle
Az Include sietős, lusta vagy nyilvános betöltés?
sobes.tech MI
Válasz az MI-től
Entity Framework-ben az Include egy Gyors betöltési (Eager Loading) mechanizmus.
A Gyors betöltés azt jelenti, hogy a kapcsolódó entitások az adatbázisból együtt töltődnek be a kért entitással egy vagy több lekérdezésben az első hozzáféréskor.
Használata megakadályozza az "N+1 kérés" problémát, amely a lustán töltésnél fordulhat elő, amikor minden kapcsolódó entitáshoz külön kérés történik az adatbázisból.
Szintaxis:
// Gyors betöltés rendelésekkel együtt ügyfelekkel
var customersWithOrders = context.Customers.Include(c => c.Orders).ToList();
Összehasonlítás más töltési típusokkal:
| Töltési típus | Leírás | Mikor használjuk |
|---|---|---|
| Gyors (Include) | Kapcsolódó adatok betöltése az alapadatokkal együtt egy vagy több lekérdezésben. | Amikor a kapcsolódó adatok szinte mindig szükségesek. |
| Lustán | Kapcsolódó adatok betöltése csak az első hozzáféréskor. | Amikor a kapcsolódó adatok nem mindig szükségesek. |
| Kifejezett | Kézi betöltés a kapcsolódó adatokhoz azután, hogy az alapadatokat megszereztük. | Amikor a kapcsolódó adatok egy adott pillanatban szükségesek a fő entitás betöltése után. |