如何使用 NHibernate 映射 newsequentialid

How to map newsequentialid with NHibernate

我正在使用 SQL 服务器 FileTable 和 NHibernate。

在插入时,NHibernate 将调用一个存储过程将记录插入到 FileTable 中。我遇到的问题是 FileTable 中的 Id (stream_id) 列是由 SQL 服务器在插入时生成的。它由默认约束newsequentialid().

生成

如何 return 我的存储过程中的那个 ID 并将其映射到我的实体的 ID 属性?

更新:

关于另一个问题:[NHibernate 使用存储过程或映射][1] 这在这里不适用。我正在使用存储过程来插入实体。该存储过程必须 return 数据库在插入时生成的 Guid 类型的 Id。我希望 NHibernate 将此 id 映射到实体。

我需要类似 Generators.TriggerIdentity 的东西,但用于 Guid 而不是 Int。

更新2:

我设法通过将其 ID 生成策略设置为 'Native' 并从存储过程中选择 return 值来填充我的 Entity.Id。但这会破坏事务,因为要获取 Id,它需要转到数据库并执行插入操作。

我通过将 Id 生成器更改为 Generators.Native 设法解决了这个问题。 然后我不得不 return 从存储过程中插入的 id。