Il doit y avoir une solution simple. J'essaie d'utiliser les attributs du validateur NHibernate sur mes propriétés DateTime. Si la valeur est nulle (via [NotNull]
), je veux qu'il échoue à la validation. Quand je soumets une valeur nulle, elle est convertie en 1/1/0001 12:00:00 AM
et NHibernate ne le considère pas comme nul. Je suppose que je pourrais écrire une règle de validation personnalisée qui renvoie false si cette date est soumise, mais il y a sûrement un moyen standard de contourner ce problème ?
Clarification : Ceci est un exemple de classe,
public class ExampleClass {
[NotNull]
public virtual DateTime MySpecialDateProperty { get; set; }
[NotNullOrEmpty]
public virtual string MyString { get; set; }
}
J'ai configuré NHibernate Validator de sorte que dans mon contrôleur, je peux faire :
newExampleClass.IsValid()
et si elle est vraie, elle sera persistée dans la base de données, sinon je retournerai newExampleClass.ValidationResults()
Lorsque je crée une nouvelle instance de ExampleClass
le MySpecialDateProperty
est initialisée à 1/1/0001 ... et le validateur ne la considère pas comme une valeur nulle.
Edit 2 : Devrais-je mettre DateTime
à nullable ( DateTime?
) qui empêcherait NHibernate de fixer la valeur à la DateTime minimale ?