FluentNHibernate:DateTime的默认精度是否改变了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FluentNHibernate:DateTime的默认精度是否改变了?相关的知识,希望对你有一定的参考价值。

我目前正在尝试从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对应物。

以上是关于FluentNHibernate:DateTime的默认精度是否改变了?的主要内容,如果未能解决你的问题,请参考以下文章

使用 FluentNhibernate 和 Autofac 的映射接口

FluentNHibernate - 如何在没有任何身份字段的情况下进行映射

如何使用 FluentNHibernate 创建 ISessionFactory

架构之路之ORM--FluentNHibernate之AutoMapping详解

FluentNHibernate 公式映射 C#

使用NHibernate和FluentNHibernate创建数据库和表?