C# · Intermediário · Inglês · Técnico
eager loading
Carregar entidades relacionadas na mesma consulta usando Include e ThenInclude do EF Core, em vez de buscá-las depois uma a uma.
Onde usar
Aparece ao resolver o problema N+1, em que um laço sobre pedidos dispara uma consulta extra por pedido. Include traz tudo em um JOIN, mas coleções grandes podem pedir AsSplitQuery para evitar explosão cartesiana.
Em código
var pedidos = await db.Pedidos
.Include(p => p.Itens)
.ThenInclude(i => i.Produto)
.ToListAsync();Exemplos
Fix the N+1 with eager loading.
Resolva o N+1 com eager loading.
Use Include to load the items in the same query.
Use Include para carregar os itens na mesma consulta.
Cuidado
Não use Include em tudo por reflexo: trazer grafos grandes que você não usa custa memória. Projete com Select só os campos necessários.
Sinônimos
carregamento antecipado
Antônimos
lazy loading