Quando invochiamo il metodo SaveChangesdella classe DbContext, Entity Framework persiste sul database le entity che sono in stato di Added e Modified ed elimina dal database quelle in stato Deleted. Tuttavia, prima di effettuare la persistenza Entity Framework verifica che le entity rispettino i parametri di validazione espressi o tramite le data annotation sulle proprietà o tramite l'implementazione dell'interfaccia IValidatableObject.
Oltre a lasciar eseguire questa validazione a Entity Framework nel metodo SaveChanges, possiamo anche effettuare la validazione manualmente invocando il metodo GetValidationErrors della classe DbContext. Questo metodo ritorna una lista di oggetti DbEntityValidationResult che sono raggruppati per tipologia di entity e che per ogni gruppo espongono la lista di errori che sono recuperabili con il seguente codice.
foreach (var validationResults in Context.GetValidationErrors()) { Console.WriteLine(String.Format("Entity: {0}", validationResults.Entry.Entity.GetType().FullName)); foreach (var error in validationResults.ValidationErrors) { Console.WriteLine(String.Format("Property: {0}, Error {1}", error.PropertyName, error.ErrorMessage)); } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Eseguire una query su SQL Azure tramite un workflow di GitHub
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Definire lo stile CSS in base alle dimensioni del container
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Eseguire le GitHub Actions offline
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Creare moduli CSS in React
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Effettuare il binding di date in Blazor