我目前正在尝试从FluentNHibernate 1.4 / NHibernate 3.4.1迁移到FluentNHibernate 2.1.2 / NHibernate 5.2.4。使用的数据库是DB2 LUW 11.1,.NET目标框架是4.61。
有问题的映射线:
Map(x => x.TimeStamp).Column("TS").Nullable();
我很久以前写过一个持久性测试,它确保从映射的DateTime属性到TIMESTAMP字段不会持续毫秒。测试通过旧的程序集,但失败了新的程序集。我现在必须使用DateTimeNoMsType作为自定义类型来获取旧行为(考虑使用约定来处理它):
Map(x => x.TimeStamp).Column("TS").Nullable().CustomType<DateTimeNoMsType>();
我的问题:我是否正确地建议DateTime属性的默认处理有变化?我试着在GitHub查找各种流利的nhibernate和nhibernate版本的文档/里程碑描述,遗憾的是,无济于事......
发现它,它是NHibernate 5.0.0的一个重大变化。
https://github.com/nhibernate/nhibernate-core/blob/5.1.5/releasenotes.txt
- NHibernate类型DateTimeType是.Net DateTime的默认值,不再缩短小数秒。如果您希望切割小数秒,请使用DateTimeNoMsType。它也适用于Local / Utc对应物。