我们正在使用一个旧数据库,该数据库使用 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/