C# · Intermediário · Inglês · Técnico
AsNoTracking
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.