ExpertiDict

C# · Intermediário · Inglês · Técnico

eager loading

/ˈiɡɚ ˈloʊdɪŋ/substantivo

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

Veja também

Todos os termos de C#