【IT168技术文档】
我们项目使用了NHibernate,为了体现ORM的优越性,领导决定把数据库从Oracle换成SQL Server,问题出现了,所有没有初始化的日期字段都不能正确保存,尽管这些字段允许Null。查了许多资料,终于发现日期字段必须使用 NuableDateTime类型,就像这样:
相应的HBM文件也要这么写:public NullableDateTime DateOfBirth { get { return dateOfBirth; } set { dateOfBirth = value; } }
这两种类型引用来自:Nullables.dll和Nullables.NHibernate.dll,可以在NHibernate contribution project.中找到。<property name="DateOfBirth" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" />