NHibernate Validator и Null DateTime
Там должно быть простое решение, я пытаюсь использовать атрибуты NHibernate Validator в моих свойствах DateTime. Если значение равно нулю (через [NotNull]
), Я хочу, чтобы проверка не прошла. Когда я отправляю нулевое значение, оно преобразуется в 1/1/0001 12:00:00 AM
и NHibernate не воспринимает это как ноль. Я думаю, я мог бы написать собственное правило проверки, которое возвращает false, если эта дата отправлена, но наверняка есть стандартный способ обойти это?
Пояснение: это пример класса,
public class ExampleClass {
[NotNull]
public virtual DateTime MySpecialDateProperty { get; set; }
[NotNullOrEmpty]
public virtual string MyString { get; set; }
}
У меня есть настройка NHibernate Validator, так что в моем контроллере я могу сделать:
newExampleClass.IsValid()
и если это правда, он будет сохраняться в базе данных, если нет, я вернусь newExampleClass.ValidationResults()
Когда я создаю новый экземпляр ExampleClass
, MySpecialDateProperty
инициализируется как 1/1/0001 ... и валидатор не принимает это как нулевое значение.
Изменить 2: я должен установить DateTime
обнулять (DateTime?
) что помешает NHibernate установить минимальное значение DateTime?
1 ответ
Вам нужно использовать обнуляемый тип. DateTime инициализируется как DateTime.MinValue (01.01.0001). Пытаться:
[NotNull]
public virtual DateTime? MySpecialDateProperty { get; set; }