Sobes.tech
Junior — Middle

Qual é a diferença entre os métodos include e theninclude ao trabalhar com relações em ORM?

sobes.tech IA

Resposta da IA

O método Include em ORM (por exemplo, Entity Framework) é usado para carregamento ansioso de entidades relacionadas de primeiro nível. Ou seja, permite carregar os dados relacionados de uma propriedade de navegação junto com a entidade principal.

ThenInclude é usado para carregar entidades relacionadas de segundo nível e superiores, ou seja, para propriedades de navegação aninhadas após Include.

Exemplo:

var orders = context.Orders
    .Include(o => o.Customer)           // carregamento do Customer relacionado
    .Include(o => o.OrderItems)         // carregamento da coleção OrderItems
        .ThenInclude(oi => oi.Product) // para cada OrderItem, carregar Product
    .ToList();

Aqui, Include carrega OrderItems, e ThenInclude carrega os Product relacionados.

Assim, Include inicia a cadeia de carregamento de dados relacionados, e ThenInclude a amplia para relações aninhadas.