Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nhibernate 为什么“增量”没有在SQLServer2008中设置标识种子_Nhibernate_Sql Server 2008 - Fatal编程技术网

Nhibernate 为什么“增量”没有在SQLServer2008中设置标识种子

Nhibernate 为什么“增量”没有在SQLServer2008中设置标识种子,nhibernate,sql-server-2008,Nhibernate,Sql Server 2008,我正在努力学习nhibernate 3.0,并试图将其应用到我的映射中 <id name="MovieId"> <generator class="increment" /> </id> 然而,当我生成我的数据库时,它会使MovieId成为我想要的一个intid,但它不会将身份种子放在上面 当我使用 <id name="MovieId"> <generator class="native" /&

我正在努力学习nhibernate 3.0,并试图将其应用到我的映射中

<id name="MovieId">
        <generator class="increment" />
    </id>
然而,当我生成我的数据库时,它会使MovieId成为我想要的一个intid,但它不会将身份种子放在上面

当我使用

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

它起作用了。我不知道什么是本地人,为什么它会起作用。我认为增量是整数。

生成器应该是identity或native,而不是increment。Native为PostGres或Oracle等数据库使用序列,为MSSQL使用标识。它允许相同的应用程序在不同的数据库上运行,而无需更改映射


增量增加内存中的ID,而不是数据库,这会造成一些缺陷,例如无法跨多个服务器扩展应用程序或无法由多个应用程序使用同一个数据库。

我听说nHibernate中的映射文件不再流行,我不知道人们仍然喜欢他们…只是一个想法似乎大多数ppl建议使用fluent,但我将要从事的项目使用映射,所以我需要在尝试使用fluent映射之前了解基本知识。