public abstract class Animal , IValidatableObject
{
public string Id {get;set;}
public string Name {get;set;}
public virtual IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (this.Name == "animal")
{
yield return new ValidationResult("Invalid Name From base", new[] { "Name" });
}
}
}
public class Dog: Animal, IValidatableObject
{
public string Owner {get;set;}
public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
/*
Here call base validate
*/
if (this.Name == "dog")
{
yield return new ValidationResult("Invalid Name From dog", new[] { "Name" });
}
}
}
J'ai une classe de base Animal
qui implémente IValidatableObject
, maintenant de Dog
méthode de Validate
sous-classe qui implémente également IValidatableObject
, je veux appeler la méthode de la classe de base Validate
.Entity Framework 4.1: Remplacer IEnumerable <ValidationResult> Valider
J'ai essayé de faire (il ne remet pas la validation de la classe de base)
base.Validate(validationContext);
En fait, mon code contient cette partie "public class Chien: Animal" (hériter d'animaux). C'était juste une faute de frappe en posant la question, l'a corrigée. –
Avez-vous essayé d'appeler base.Validate() et d'itérer dans le jeu de résultats retourné? Cela devrait résoudre votre problème. La méthode de validation de l'animal est appelée! – Hans