我已经编写了一些测试,如果dbContext.SaveChanges()
超过了尚未分配值的可空属性,[Required]
会引发异常:
class Object1 {
public int Object1ID { get; set; }
[Required(ErrorMessage="Some required data has not been set.")]
public int? SomeRequiredData { get; set; }
}
using(CustomDbContext dbContext = new CustomDbContext()) {
Object1 obj = new Object1();
dbContext.Objects1.Add(obj);
dbContext.SaveChanges();
}
上面的代码将抛出:System.Data.Entity.Validation.DbEntityValidationException
。为什么这种情况不会发生在正常(即不可空)的属性中?
答案 0 :(得分:0)
因为非可空属性不能为空,因此具有默认值。
因此,属性始终设置,至少为其默认值,因此始终遵守所需的约束。