Я пишу некоторые тесты, и получается, что до 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
. Почему это не происходит для нормальных (то есть не нулевых) свойств?
Он будет метать, если данные недействительны, то есть свойство равно null. Он никогда не будет выкидывать это исключение с обязательным условием свойства с типом с нулевым значением, поскольку свойство всегда будет иметь значение (в случае int это будет 0). –