Validare le entity nel contesto di Entity Framework prima della persistenza

di Stefano Mostarda, in LINQ, Entity Framework,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi