C# NHibernate和MS SQL函数NEWSEQUENTIALID()生成有序GUID

C# NHibernate和MS SQL函数NEWSEQUENTIALID()生成有序GUID,c#,sql,sql-server,nhibernate,fluent-nhibernate,C#,Sql,Sql Server,Nhibernate,Fluent Nhibernate,如何配置NHibernate 3.3.1(或其他版本)以允许Microsoft SQL 2008 R2为具有数据类型uniqueidentifier和默认约束NEWSEQUENTIALID()的表生成主键值(已排序的guid) 我的测试表明,我可以将Id(PK)映射设置为GeneratedBy.Guid.Native(),但这将调用select newid(),而不会使用函数NEWSEQUENTIALID() 我可以使用Id映射生成有序的guid客户端,GeneratedBy.GuidComb(

如何配置NHibernate 3.3.1(或其他版本)以允许Microsoft SQL 2008 R2为具有数据类型uniqueidentifier和默认约束NEWSEQUENTIALID()的表生成主键值(已排序的guid)

我的测试表明,我可以将Id(PK)映射设置为GeneratedBy.Guid.Native(),但这将调用select newid(),而不会使用函数NEWSEQUENTIALID()

我可以使用Id映射生成有序的guid客户端,GeneratedBy.GuidComb(),但我担心同一进程中的多个线程会生成相同的guid

我的应用程序需要跨活动/活动数据中心进行数据库复制,我希望使用MS SQL Server(多个活动数据中心)生成的有序GUID作为主键

我看这篇文章,

,

但它似乎忽略了一点,即如何设置NHibernate以使用NHibernate生成的GUId


任何帮助都将不胜感激。

默认情况下,我相信nhibernate使用guid.comb策略生成应该订购的guid。它们不像由NEWSEQUENTIALID()生成时那么明显,但仍然应该排序

请查看以下有关此的文章:


默认情况下,我相信nhibernate使用guid.comb策略来生成应该排序的guid。它们不像由NEWSEQUENTIALID()生成时那么明显,但仍然应该排序

请查看以下有关此的文章:


我可以使用Guid.Comb策略,但我真的很想知道是否可以利用MS SQL函数NEWSEQUENTIALID()。到目前为止,我还找不到这个问题的答案。@codemech如果您无法找到nhibernate的本机功能,您可以编写自己的生成器类来调用newsequentialid()。我认为你的想法有道理。谢谢。我可以使用Guid.Comb策略,但我真的很想知道是否可以利用MS SQL函数NEWSEQUENTIALID()。到目前为止,我还找不到这个问题的答案。@codemech如果您无法找到nhibernate的本机功能,您可以编写自己的生成器类来调用newsequentialid()。我认为你的想法有道理。谢谢