sql-server - 在 NHibernate 中使用 Guid Version 列

标签 sql-server nhibernate fluent-nhibernate version

我们正在使用一个旧数据库,该数据库使用 SQL Server uniqueidentifier 列来实现并发,因此我们需要使用 Guid 作为版本列。知道我们如何在 NHibernate 中实现这一目标吗?

我们目前正在使用 Fluent NHibernate 定义我们的映射,作为一个名为 ConcurrencyId 的 Guid 类型属性,使用此代码段

版本(x => x.ConcurrencyId)

这会导致创建 session 时出现以下错误

System.InvalidCastException:无法将“NHibernate.Type.GuidType”类型的对象转换为“NHibernate.Type.IVersionType”类型。

任何有关如何流畅或以其他方式完成此操作的想法将不胜感激。如果可以的话,我们很乐意破解源代码。

最佳答案

您可以尝试实现自定义类型来实现 NHibernate.UserTypes.IUserVersionType 。 (我认为这个建议可能适用于比您正在使用的 NHibernate 版本更新的版本。)

关于sql-server - 在 NHibernate 中使用 Guid Version 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4134751/

相关文章:

SQL,如何使用动态条件逻辑?

.net - SQL Server 查询仅在第一次运行时确实很慢

wcf - NHibernate Session 在每次 wcf 服务方法调用时被释放

sql-server - 如何在 Report Builder 3.0 中将 Excel 公式插入单元格?

sql - 使用动态行和列创建 PIVOT - SQL Server 2016

nhibernate - NHibernate 2.1 和 StructureMap 的构造函数依赖注入(inject)

wcf - 具有 NHibernate 和企业业务逻辑的 OData WCF 数据服务

c# - Fluent nHibernate 中的嵌套查询

c# - 覆盖长文本字符串的流利 NHibernate nvarchar(MAX) 而不是 nvarchar(255)

c# - 将动态组件映射到不友好的数据表结构?