Sobes.tech
Middle

Czy Include jest ładowaniem eager, lazy czy explicit?

sobes.tech AI

Odpowiedź od AI

Include w Entity Framework jest mechanizmem ładowania eager.

Ładowanie eager oznacza, że powiązane encje są ładowane z bazy danych razem z żądanym encją w jednym lub kilku zapytaniach przy pierwszym dostępie do danych.

Jego użycie zapobiega problemowi "N+1 zapytań", który może wystąpić przy ładowaniu leniwym, gdy do dostępu do każdej powiązanej encji wykonywane jest osobne zapytanie do bazy danych.

Składnia:

// Ładowanie eager zamówień razem z klientami
var customersWithOrders = context.Customers.Include(c => c.Orders).ToList();

Porównanie z innymi typami ładowania:

Typ ładowania Opis Kiedy używać
Eager (Include) Ładowanie powiązanych danych razem z głównymi w jednym lub kilku zapytaniach. Gdy powiązane dane prawie zawsze są potrzebne.
Lazy Ładowanie powiązanych danych tylko przy pierwszym dostępie do nich. Gdy powiązane dane nie zawsze są potrzebne.
Jawne Ręczne ładowanie powiązanych danych po uzyskaniu głównej encji. Gdy powiązane dane są potrzebne w określonym momencie po załadowaniu głównej encji.