16

我知道 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?全部靠自己。

谢谢@正义!

4

1 回答 1

31
<property name="CreatedDate" />
  • NHibernate 将在有问题的类上进行反射,并发现属性的反射类型是DateTime?完全独立的。
  • NHibernate 将默认列名与属性名相同,除非您另有说明。
  • NHibernate 将假定任何属性都可以为空 ( not-null="false"),除非您另有说明。

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

<property name="CreatedDate" type="System.Nullable`1[[System.DateTime, mscorlib]], mscorlib" />
于 2009-02-27T01:49:22.967 回答