Sobes.tech
Middle

Da li je Include eager, lazy ili eksplicitno učitavanje?

sobes.tech АИ

Одговор од АИ

Include u Entity Framework je mehanizam Željeno učitavanje (Eager Loading).

Željeno učitavanje znači da su povezane entitete učitane iz baze podataka zajedno sa traženom entitetom u jednom ili više upita pri prvom pristupu podacima.

Njegova upotreba sprečava problem "N+1 upita", koji može nastati kod lenjeg učitavanja, kada se za pristup svakoj povezanoj entiteti izvrši poseban upit ka bazi podataka.

Sintaksa:

// Željeno učitavanje porudžbina zajedno sa klijentima
var customersWithOrders = context.Customers.Include(c => c.Orders).ToList();

Upoređenje sa drugim tipovima učitavanja:

Tip učitavanja Opis Kada koristiti
Željeno (Include) Učitavanje povezanih podataka zajedno sa glavnim u jednom ili više upita. Kada su povezani podaci skoro uvek potrebni.
Lenjo Učitavanje povezanih podataka samo pri prvom pristupu. Kada povezani podaci nisu uvek potrebni.
Eksplicitno Ručno učitavanje povezanih podataka nakon dobijanja glavne entitete. Kada su povezani podaci potrebni u određenom trenutku nakon učitavanja glavne entitete.