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
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Miglioramenti nelle performance di Angular 16
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Hosting di componenti WebAssembly in un'applicazione Blazor static
Creare una custom property in GitHub
Eseguire una query su SQL Azure tramite un workflow di GitHub
Usare lo spread operator con i collection initializer in C#
Le novità di Entity Framework 8
Utilizzare politiche di resiliency con Azure Container App
Limitare le richieste lato server con l'interactive routing di Blazor 8
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Utilizzare il trigger SQL con le Azure Function