Junior — Middle
Czym różnią się metody include i theninclude podczas pracy z relacjami w ORM?
sobes.tech AI
Odpowiedź od AI
Metoda Include w ORM (np. Entity Framework) służy do ładowania eager powiązanych encji pierwszego poziomu. Oznacza to, że pozwala na załadowanie powiązanych danych jednej właściwości nawigacyjnej razem z główną encją.
ThenInclude służy do ładowania powiązanych encji drugiego i wyższych poziomów, czyli dla zagnieżdżonych właściwości nawigacyjnych po Include.
Przykład:
var orders = context.Orders
.Include(o => o.Customer) // ładowanie powiązanego Customer
.Include(o => o.OrderItems) // ładowanie kolekcji OrderItems
.ThenInclude(oi => oi.Product) // dla każdego OrderItem, załaduj Product
.ToList();
Tutaj Include ładuje OrderItems, a ThenInclude powiązane Product.
W ten sposób Include rozpoczyna łańcuch ładowania powiązanych danych, a ThenInclude go rozszerza dla zagnieżdżonych relacji.