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 il trigger SQL con le Azure Function
Evitare la script injection nelle GitHub Actions
Le novità di Angular: i miglioramenti alla CLI
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Ottimizzazione dei block template in Angular 17
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Creare una custom property in GitHub
Usare le navigation property in QuickGrid di Blazor
Generare token per autenicarsi sulle API di GitHub