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

16
我知道 NHibernate 2.* 中一个重大变化是不再支持 NHibernate.Nullables。因此,在映射文件中,你要如何映射可空的 DateTime 类型呢?例如:

显然以下方式行不通:

<property name="NullableDateTime" type="DateTime?"></property>

<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个回答

31
<property name="CreatedDate" />
  • NHibernate会自动反射检查相关类并发现属性的类型是DateTime?
  • 除非你另有说明,否则NHibernate默认假定列名与属性名相同。
  • 除非你另有说明,否则NHibernate默认假定任何属性是可空的(not-null="false")。

如果你真的想的话,它应该是这样的...

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

非常感谢。我知道第二和第三个,但是我从来没有见过第一个 - 真的这么简单吗? - Ted
就此而言,使用类似映射属性的东西会更容易,其中这只是 [Property(Name="CreatedDate", TypeType=typeof(DateTime?))] - Joseph Nields

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接