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
Utilizzare gli snapshot con Azure File shares
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Potenziare Azure AI Search con la ricerca vettoriale
Usare una container image come runner di GitHub Actions
Utilizzare le collection expression in C#
Utilizzare un service principal per accedere a Azure Container Registry
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Gestire undefined e partial nelle reactive forms di Angular
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Creare un'applicazione React e configurare Tailwind CSS