c# - 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。它也适用于其本地/UTC 对应物。
推荐阅读
- azure-ad-b2c - Azure B2C 应用注册范围 - 无法将“谁可以同意”更改为管理员和用户
- html - 来自背景图像的弹性项目大小
- python - 如何绘制一条带斜率和一个点的线?Python
- arrays - 将对象属性的所有值提取到 Typescript 中的新数组
- kotlin - LiveData 重复观察员的担忧
- numpy - numpy数组缓存查找的有效方法?
- javascript - 正确初始化由 JavaScript 创建的 Blazor 实例
- javascript - 如何实现按钮禁用功能或其他技术,使用户不会登录两次?反应,表达
- python-3.x - 点击显示更多按钮;用 python 刮硒
- javascript - 未捕获的引用错误(无法读取 JSON 文件)