C# · Avançado · Inglês · Técnico
global query filter
Filtro LINQ configurado no modelo do EF Core que é aplicado automaticamente a todas as consultas de uma entidade, usado em soft delete e multi-tenancy.
Onde usar
Aparece em sistemas com exclusão lógica, em que toda consulta deve ignorar registros marcados como removidos, ou em multi-tenant. Use IgnoreQueryFilters() quando precisar enxergar tudo, como em relatórios administrativos.
Em código
protected override void OnModelCreating(
ModelBuilder mb)
{
mb.Entity<Livro>()
.HasQueryFilter(l => !l.Excluido);
}Exemplos
We implemented soft delete with a global query filter.
Implementamos soft delete com um global query filter.
Use IgnoreQueryFilters to see deleted rows.
Use IgnoreQueryFilters para ver as linhas excluídas.
Cuidado
Não esqueça que ele afeta Include e entidades relacionadas: um filtro na entidade principal pode esconder dados e gerar avisos ou resultados inesperados na dependente.
Sinônimos
filtro global de consulta