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

时间:2009-02-27 01:47:00

标签: nhibernate datetime nhibernate-mapping nullable

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

明白不起作用:

<property name="CreateDate" column="CreateDate" type="DateTime?" not-null="false" />

不再支持:

<property name="ModifiedDate" column="ModifiedDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" not-null="false"/>

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

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

谢谢@Justice!

1 个答案:

答案 0 :(得分:29)

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

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

<property name="CreatedDate" type="System.Nullable`1[[System.DateTime, mscorlib]], mscorlib" />