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