开发者

NHibernate Validator and Null DateTime

开发者 https://www.devze.com 2023-01-18 18:16 出处:网络
There must be a simple solution out there, I\'m trying to use NHibernate Validator attributes on my DateTime properties. If the value is null (via [NotNull]), I want it to fail validation. When I subm

There must be a simple solution out there, I'm trying to use NHibernate Validator attributes on my DateTime properties. If the value is null (via [NotNull]), I want it to fail validation. When I submit a null value it gets converted to 1/1/0001 12:00:00 AM and NHibernate doesn't pick that up as null. I guess I could write a custom validation rule that returns false if that date is submitted, but surely there's a standard way around this?

Clarification: This is an example class,

public class ExampleClass {

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

  [NotNullOrEmpty]
  public virtual string MyString { get; set; }
}

I have NHibernate Validator setup so that in my controller, I can do:

newExampleClass.IsValid() and if it is true it'll persist in the database, if not I'll return newExampleClass.ValidationResults()

When I create a new instance of ExampleClass, the MySpecialDateProperty initializes as 1/1/0001 ... and the validator doesn't pick that up as a null value.

Edit 2: Should I set DateTime to nullable (DateTime?) which would prevent NHib开发者_C百科ernate from setting the value to the minimum DateTime?


You need to use a nullable type. DateTime is initialized to DateTime.MinValue (1/1/0001). Try:

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号