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