为什么“增量”没有在SQL Server 2008中设置标识种子

时间:2011-01-13 18:01:29

标签: nhibernate sql-server-2008

我正在尝试学习nhibernate 3.0,我试图把它放在我的映射

<id name="MovieId">
        <generator class="increment" />
    </id>

然而,当我生成我的数据库时,它将MovieId作为一个int(我想要的),但它没有放置身份种子。

当我使用

   <id name="MovieId">
        <generator class="native" />
    </id>

它有效。我不确定原生是什么以及它为何起作用。我虽然增量做了整数。

1 个答案:

答案 0 :(得分:0)

生成器应该是“identity”或“native”而不是“increment”。 “Native”对MSSQL的“PostGres”或“Oracle”和“identity”等数据库使用“序列”。它允许相同的应用程序在不改变映射的情况下在不同的数据库上运行。

“增量”会增加内存中的ID(而不是数据库),从而产生多个缺陷,例如无法跨多个服务器扩展应用程序或多个应用程序使用相同的数据库。