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
Miglioramenti nelle performance di Angular 16
Disabilitare automaticamente un workflow di GitHub
Usare le variabili per personalizzare gli stili CSS
Eseguire una GroupBy per entity in Entity Framework
Eseguire le GitHub Actions offline
Evitare la script injection nelle GitHub Actions
Limitare le richieste lato server con l'interactive routing di Blazor 8
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Creare alias per tipi generici e tuple in C#
Creare form tipizzati con Angular
Installare le Web App site extension tramite una pipeline di Azure DevOps
Generare file per il download da Blazor WebAssembly