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" });
}
}
}
我有一个基类Animal
它实现IValidatableObject
,现在从Dog
子类的Validate
方法,也实现了IValidatableObject
,我想调用基类的Validate
方法。实体框架4.1:覆盖的IEnumerable <为ValidationResult>验证
我想这样做(没有调用基类的validate)
base.Validate(validationContext);
其实我的代码中包含这部分“公共类犬:动物”(从动物继承)。在提出问题时,这只是一个错字,纠正了它。 –
您是否尝试调用base.Validate()并遍历返回的结果集?这应该可以解决你的问题。动物的验证方法被调用! – Hans