NHibernate Validator和Null DateTime

chu*_*nce 2 nhibernate nhibernate-validator

必须有一个简单的解决方案,我正在尝试在我的DateTime属性上使用NHibernate Validator属性.如果值为null(via [NotNull]),我希望它验证失败.当我提交一个空值时,它会被转换为,1/1/0001 12:00:00 AM而NHibernate不会将其选为null.我想我可以编写一个自定义验证规则,如果提交该日期则返回false,但是肯定有一个标准的方法吗?

澄清:这是一个示例类,

public class ExampleClass {

  [NotNull]
  public virtual DateTime MySpecialDateProperty { get; set; }

  [NotNullOrEmpty]
  public virtual string MyString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有NHibernate Validator设置,所以在我的控制器中,我可以这样做:

newExampleClass.IsValid() 如果它是真的它会在数据库中存在,如果不是,我会返回 newExampleClass.ValidationResults()

当我创建一个新实例时ExampleClass,MySpecialDateProperty初始化为1/1/0001 ...并且验证器不会将其作为空值选择.

编辑2:我应该设置DateTime为nullable(DateTime?),这会阻止NHibernate将值设置为最小DateTime吗?

Jam*_*Ide 7

您需要使用可空类型.DateTime初始化为DateTime.MinValue(1/1/0001).尝试:

  [NotNull]
  public virtual DateTime? MySpecialDateProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)