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.