所以我有以下对象
public class Person : IValidatableObject
{
[Required]
public string Name {get;set;}
[Required]
public string Status {get;set;
public Address Address {get;set;}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Status != "Addressless" && Address == null)
{
yield return new ValidationResult("An address is required if this person is not addressless");
}
}
}
public class Address
{
[Required]
public string Address1 {get;set;}
[Required]
public string City {get;set;}
}
现在,我的问题是地址值是必需的,因为如果该人确实有地址,EF Code First 不需要地址表中数据库中的空值。这似乎导致了一个问题,因为 Person 不需要地址,因此如果他们是“无地址”,则不应进行Address
验证,但验证仍会启动,因为 Address 具有必填字段。
有没有解决的办法?