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
Generare la software bill of material (SBOM) in GitHub
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Generare token per autenicarsi sulle API di GitHub
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Disabilitare automaticamente un workflow di GitHub (parte 2)
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Utilizzare Copilot con Azure Cosmos DB
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Migrare una service connection a workload identity federation in Azure DevOps