Il doit y avoir une solution simple là-bas, j'essaie d'utiliser les attributs NHibernate Validator sur mes propriétés DateTime. Si la valeur est null (via [NotNull]
), je souhaite que la validation échoue. Quand je soumets une valeur nulle, il est converti en 1/1/0001 12:00:00 AM
et NHibernate ne le prend 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 sûrement il y a un moyen standard autour de cela?NHibernate Validator et Null DateTime
Précision: Ceci est une classe d'exemple,
public class ExampleClass {
[NotNull]
public virtual DateTime MySpecialDateProperty { get; set; }
[NotNullOrEmpty]
public virtual string MyString { get; set; }
}
J'ai installé NHibernate Validator de sorte que dans mon contrôleur, je peux faire:
newExampleClass.IsValid()
et s'il est vrai ça va persister dans le base de données, sinon je reviendrai newExampleClass.ValidationResults()
Lorsque je crée une nouvelle instance de ExampleClass
, le MySpecialDateProperty
initialise comme 1/1/0001 ... et le validateur ne prend pas cela comme une valeur nulle.
Édition 2: Dois-je définir DateTime
sur nullable (DateTime?
), ce qui empêcherait NHibernate de définir la valeur sur DateTime minimum?
Que signifie "soumettre" dans ce contexte? Est-ce que votre * propriété * est nullable? –
Est-ce que ma clarification éclaircit, désolé je suppose que tout le monde ne peut pas lire dans mes pensées;) –
Ceci n'est pas NHibernate en réglant la valeur au DateTime minimum. C'est le .NET Framework. DateTime est un type de valeur (Struct), pas un type de référence (Class). http://msdn.microsoft.com/en-us/library/system.datetime.aspx Vous ne pouvez pas définir un DateTime sur null de la même manière que vous ne pouvez pas dire int foo = null ou bool inValid = null; –