属性为nullable时,必需属性触发异常

时间:2014-09-24 10:31:07

标签: c# .net entity-framework ef-code-first entity-framework-6

我已经编写了一些测试,如果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。为什么这种情况不会发生在正常(即不可空)的属性中?

1 个答案:

答案 0 :(得分:0)

因为非可空属性不能为空,因此具有默认值。

因此,属性始终设置,至少为其默认值,因此始终遵守所需的约束。