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
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Utilizzare Azure AI Studio per testare i modelli AI
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Generare un hash con SHA-3 in .NET
Il nuovo controllo Range di Blazor 9
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Introduzione alle Container Queries
Change tracking e composition in Entity Framework