Nello script #459 abbiamo visto che, a livello di mapping, possiamo impostare dei filtri da applicare a tutte le query su un determinato entity set. Questa tecnica viene molto usata per le delete logiche dove il filtro per scartare i record cancellati viene impostato a livello globale senza doverlo specificare per ogni query.
Tuttavia, esistono dei casi in cui il filtro non deve essere applicato. Per fare un esempio, se vogliamo che l'utente sia in grado di annullare la cancellazione di un record, dobbiamo mettergli a disposizione una maschera con i record cancellati. Questo significa che la query per mostrare i record cancellati deve eliminare il filtro preimpostato a livello di mapping per poi applicarne un altro. Per fare questo, dobbiamo usare il metodo IgnoreQueryFilters che, per la singola query, annulla qualunque filtro impostato a livello globale per l'entity.
var people = db.People .IgnoreQueryFilters() .Where(p => p.Deleted) .ToList();
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Introduzione alle Container Queries
Escludere alcuni file da GitHub Secret Scanning
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Eliminare una project wiki di Azure DevOps
Potenziare la ricerca su Cosmos DB con Full Text Search
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Utilizzare WhenEach per processare i risultati di una lista di task
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Recuperare le subissue e il loro stato di completamento in GitHub
Gestire i dati con Azure Cosmos DB Data Explorer
Gestire codice JavaScript con code splitting e lazy loading
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste