NHibernate 2.*映射文件:如何定义可空的DateTime类型(DateTime?)?

Ted*_*Ted 16 nhibernate datetime nullable nhibernate-mapping

我知道NHibernate 2的一个重大变化是*不再支持NHibernate.Nullables.因此,您在映射文件中使用什么来映射可为空的DateTime?类型?对于ie:

可以理解的是不起作用:

<property name="CreateDate" column="CreateDate" type="DateTime?" not-null="false" />
Run Code Online (Sandbox Code Playgroud)

不再支持:

<property name="ModifiedDate" column="ModifiedDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" not-null="false"/>
Run Code Online (Sandbox Code Playgroud)

我知道它一定很明显,但我找不到它!

答案很简单:NHibernate会反映出有问题的类,并发现该属性的反射类型是DateTime?一切都靠自己.

谢谢@Justice!

yfe*_*lum 30

<property name="CreatedDate" />
Run Code Online (Sandbox Code Playgroud)
  • NHibernate将反映出有问题的类,并发现该属性的反射类型都是DateTime?独立的.
  • NHibernate将假定列名默认与属性名相同,除非您另有说明.
  • NHibernate会假设任何属性都是可空的(not-null="false"),除非你另有说明.

如果你真的想要,那应该是......

<property name="CreatedDate" type="System.Nullable`1[[System.DateTime, mscorlib]], mscorlib" />
Run Code Online (Sandbox Code Playgroud)