title: Entity Framework 4.1: Override IEnumerable<ValidationResult> Validate
body: <pre><code>    public abstract class Animal , IValidatableObject
      {
          public string Id {get;set;}
          public string Name {get;set;}
          public virtual IEnumerable&lt;ValidationResult&gt; 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&lt;ValidationResult&gt; Validate(ValidationContext validationContext)
      {
          /*
            Here call base validate
           */
  
          if (this.Name == "dog")
          {
              yield return new ValidationResult("Invalid Name From dog", new[] { "Name" });
          }
      }     
  
      }
  </code></pre>
  
  <p>I have a base class <code>Animal</code>  which implements <code>IValidatableObject</code>, now from <code>Dog</code> sub-class's <code>Validate</code> method which also implements <code>IValidatableObject</code>, I want to call base class's  <code>Validate</code> method.</p>
  
  <p>I tried doing (it doesn't call base class's validate)</p>
  
  <pre><code>base.Validate(validationContext);
  </code></pre>