Nello script #620 abbiamo visto come sfruttare il metodo ExecuteUpdate per creare un comando SQL di update massiva. In questo script ci occupiamo di un metodo molto simile, ma che invece che aggiornare i record li elimina: ExecuteDelete. Questo metodo possiamo metterlo alla fine di una query LINQ per lanciare la cancellazione dei record espressi nella query.
context.Products .Where(p => p.Category = "shoes") .ExecuteDelete();
In questo caso, la query LINQ filtra i record con categoria "shoes" e infine genera un comand SQL di DELETE per quei record. Il comando è il seguente.
DELETE FROM Products Where Category = "shoes"
Così come per il metodo ExecuteUpdate, ExecuteDelete non va a toccare le entity presenti già caricate nel contesto che quindi rimangono nello stato in cui si trovano anche se potrebbero essere state cancellate dal database. Per questo motivo, potrebbe tornare utile scaricare le entity dal contesto (tramite ilmetodo Clear del ChangeTracker e ricaricarle così da averle sincronizzate con il database se necessario.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Introduzione ai web component HTML
Eseguire script pre e post esecuzione di un workflow di GitHub
Generare una User Delegation SAS in .NET per Azure Blob Storage
Gestire i dati con Azure Cosmos DB Data Explorer
Utilizzare Locust con Azure Load Testing
Gestire progetti NPM in .NET Aspire
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Creare una libreria CSS universale: Cards
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Utilizzare Intersect e Except per filtrare set di dati in TSql
Testare l'invio dei messaggi con Event Hubs Data Explorer