Sobes.tech
Junior — Middle

¿En qué se diferencian los métodos include y theninclude al trabajar con relaciones en ORM?

sobes.tech AI

Respuesta de la IA

El método Include en ORM (por ejemplo, Entity Framework) se utiliza para cargar de manera ansiosa las entidades relacionadas de primer nivel. Es decir, permite cargar los datos relacionados de una propiedad de navegación junto con la entidad principal.

ThenInclude se aplica para cargar entidades relacionadas de segundo nivel y superiores, es decir, para propiedades de navegación anidadas después de Include.

Ejemplo:

var orders = context.Orders
    .Include(o => o.Customer)           // carga del Customer relacionado
    .Include(o => o.OrderItems)         // carga de la colección OrderItems
        .ThenInclude(oi => oi.Product) // para cada OrderItem, cargar Product
    .ToList();

Aquí, Include carga OrderItems, y ThenInclude carga los Product relacionados.

De esta manera, Include inicia la cadena de carga de datos relacionados, y ThenInclude la amplía para relaciones anidadas.