Sobes.tech
Junior — Middle

Care este diferența dintre metodele include și theninclude atunci când lucrați cu relații în ORM?

sobes.tech AI

Răspuns de la AI

Metoda Include în ORM (de exemplu, Entity Framework) este utilizată pentru încărcarea eager a entităților legate de primul nivel. Adică, permite încărcarea datelor legate ale unei proprietăți de navigație împreună cu entitatea principală.

ThenInclude se aplică pentru încărcarea entităților legate de nivelul al doilea și superior, adică pentru proprietățile de navigație încorporate după Include.

Exemplu:

var orders = context.Orders
    .Include(o => o.Customer)           // încărcarea Customer-ului legat
    .Include(o => o.OrderItems)         // încărcarea colecției OrderItems
        .ThenInclude(oi => oi.Product) // pentru fiecare OrderItem, încărcați Product
    .ToList();

Aici, Include încarcă OrderItems, iar ThenInclude încarcă Product-urile legate.

Astfel, Include începe lanțul de încărcare a datelor legate, iar ThenInclude îl extinde pentru relații încorporate.