そこには簡単な解決策があるはずです。私はDateTimeプロパティでNHibernateValidator属性を使用しようとしています。値が(を介して[NotNull]
)nullの場合、検証に失敗するようにします。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 ...になり、バリデーターはそれをnull値として取得しません。
編集2:NHibernateが値を最小のDateTimeに設定できないようDateTime
にするnullable( )に設定する必要がありますか?DateTime?