ExpertiDict

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

AsNoTracking

/ˌeɪ ɛs noʊ ˈtrækɪŋ/substantivo

Método do EF Core que executa a consulta sem registrar as entidades no change tracker. Poupa memória e CPU em leituras que não vão gravar nada de volta.

Onde usar

Aparece em endpoints de listagem e relatórios, em que a consulta só devolve dados. Uma alteração em entidade sem rastreamento não é salva pelo SaveChanges, o que confunde quem esquece de remover o AsNoTracking.

Em código

var livros = await db.Livros
  .AsNoTracking()
  .Where(l => l.Ano > 2020)
  .ToListAsync();

Exemplos

Add AsNoTracking, this query is read-only.

Adicione AsNoTracking, essa consulta é só leitura.

The update didn't save because of AsNoTracking.

A atualização não salvou por causa do AsNoTracking.

Cuidado

Não use quando for editar e salvar as entidades lidas: sem rastreamento, o SaveChanges não enxerga as mudanças.

Veja também

Todos os termos de C#