必须有一个简单的解决方案,我正在尝试在我的DateTime属性上使用NHibernate Validator属性。如果值为null(通过[NotNull]
),我希望它验证失败。当我提交null值时,它会转换为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; }
}
我有NHibernate Validator设置,所以在我的控制器中,我可以这样做:
newExampleClass.IsValid()
如果确实如此,它会在数据库中保留,如果不是,我会返回newExampleClass.ValidationResults()
当我创建ExampleClass
的新实例时,MySpecialDateProperty
初始化为1/1/0001 ...并且验证程序不会将其选为空值。
编辑2:我应该将DateTime
设置为可空(DateTime?
),这会阻止NHibernate将值设置为最小DateTime吗?
答案 0 :(得分:7)
您需要使用可空类型。 DateTime初始化为DateTime.MinValue(1/1/0001)。尝试:
[NotNull]
public virtual DateTime? MySpecialDateProperty { get; set; }