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