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
Creazione di componenti personalizzati in React.js con Tailwind CSS
Creare alias per tipi generici e tuple in C#
Evitare la script injection nelle GitHub Actions
Definire stili a livello di libreria in Angular
Generare file per il download da Blazor WebAssembly
Gestire domini wildcard in Azure Container Apps
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Disabilitare automaticamente un workflow di GitHub
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Come migrare da una form non tipizzata a una form tipizzata in Angular