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
Code scanning e advanced security con Azure DevOps
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Utilizzare database e servizi con gli add-on di Container App
Utilizzare flat e flatMap per appiattire array innestati in array
Controllare gli accessi IP alle app con Azure Container Apps
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Utilizzare un service principal per accedere a Azure Container Registry
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Specificare il versioning nel path degli URL in ASP.NET Web API
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core