我正在尝试使用NHibernate将一些新对象插入到firebird数据库中。

我收到错误“无法获取下一个序列值[SQL:SQL not available]"

这是我目前正在使用的映射。注意ANML_EVNT是我想要使用的生成器的名称。

    <id name="Id" column="ID" type="integer">
        <generator class="sequence">
            <param name="sequence">ANML_EVNT></param>   
        </generator>


    </id>
有帮助吗?

解决方案

如果您仍然在寻找答案,那么我是如何成功使用它的。

我使用“原生”生成器因为在我们的程序中添加对SQL Server的支持时,NHibernate中唯一需要更改的是生成器类型为“native”。因为Firebird和SQL Server实现了他们的“自动递增身份”列不同。在Firebird中,它使用了命名生成器,在SQL Server中它忽略了“序列”。参数并使用内置的自动增量。

以下是我所说的例子:

<id name="Id" column="ID">
   <generator class="native">
      <param name="sequence">ANML_EVNT</param>
   </generator>
</id>

尽管如此,正如gcores所回答的那样,配置中出现的所有错误都是额外的“&gt;”在ANML_EVNT之后。

其他提示

看起来很好。问题不是ANML_EVNT之后的结束括号,对吧?

 <id name="Id" column="ID" type="integer">
      <generator class="sequence">
          <param name="sequence">ANML_EVNT</param>       
      </generator>


</id>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top