In alcune applicazioni cancellare fisicamente i dati non è possibile. In questo genere di applicazioni invece di usare la cancellazione fisica dei record, si usa quella logica cioè si marcano i record cancellati con un flag. Quando si estraggono i dati, bisogna far attenzione a non recuperare i record cancellati quindi bisogna impostare una condizione di ricerca.
Poiché questa condizione va applicata a tutte le query, è molto facile commettere errori. In questi casi torna utile una nuova funzionalità di Entity Framework Core 2.0: i filtri a livello di modello. Tramite questa funzionalità possiamo impostare un filtro su una entity a livello di mapping e Entity Framework Core 2 applicherà sempre questo filtro senza che dobbiammo specificarlo nella query.
modelBuilder.Entity<Person>() .HasQueryFilter(p => !p.Deleted);
In questo modo, ogni volta che eseguiamo una query che coinvolge l'entity Person, Entity Framework Core aggiungera una Where SQL che include solo i record che hanno il flag deleted a false.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Creare gruppi di client per Event Grid MQTT
Sfruttare al massimo i topic space di Event Grid MQTT
Supportare la sessione affinity di Azure App Service con Application Gateway
Assegnare un valore di default a un parametro di una lambda in C#
Generare la software bill of material (SBOM) in GitHub
Creare un webhook in Azure DevOps
Paginare i risultati con QuickGrid in Blazor
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub