Entity Framework supporta la validazione degli oggetti prima che questi vengano persistiti. Per specificare le regole di validazione, dobbiamo utilizzare le data annotations del .NET Framework come Required, MaxLength e così via.
Tuttavia, ci sono casi in cui la validazione non può essere specificata con una data annotation in quanto il codice di validazione è complesso. Nei casi in cui le data annotation non sono sufficienti, possiamo utilizzare l'interfaccia IValidatableObject.
Quest'interfaccia espone il metodo Validate all'interno del quale specifichiamo la validazione e ritorniamo una lista di oggetti ValidationResult che rappresentano gli eventuali errori. Se la lista è vuota, la validazione passa, altrimenti Entity Framework blocca la persistenza.
public class Person : IValidatableObject { public int Id { get; set; } [Required] public string Name { get; set; } public int Age { get; set; } public IEnumerable<ValidationResult> Validate( ValidationContext validationContext) { if (Age < 18) { yield return new ValidationResult("Utente non magiorenne"); } } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Gestire domini wildcard in Azure Container Apps
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Eseguire una GroupBy per entity in Entity Framework
Sfruttare lo streaming di una chiamata Http da Blazor
Effettuare il binding di date in Blazor
Elencare le container images installate in un cluster di Kubernetes
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Creazione di componenti personalizzati in React.js con Tailwind CSS
Supportare il sorting di dati tabellari in Blazor con QuickGrid