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; }
Другие вопросы по тегам