Я использую проверку IValidatableObject для сущностей, например. следующий код:
public class OuterObj : IValidatableObject
{
public int ID { get; set; }
public string Name { get; set; }
public IEnumberable<InnerObj> InnerObjList { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (this.ID <= 0)
{
yield return new ValidationResult("", new[] { nameof(this.ID) });
}
}
}
public class InnerObj : IValidatableObject
{
public int ID { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (this.ID <= 0)
{
yield return new ValidationResult("", new[] { nameof(this.ID) });
}
}
}
В этом случае, когда я проверяю externalObj, когда присутствует innerObj, он проверяет только innerobj, а не externalobj. Он не достигает метода проверки внешнего объекта в случае наличия внутреннего объекта.
Я хотел бы проверить оба, когда присутствует innerobj. Пожалуйста, помогите мне с тем, как это делается. Почему он не проверяет внешний объект?