Domanda

Sto cercando di inserire alcuni nuovi oggetti in un database firebird usando NHibernate.

Ricevo l'errore " impossibile ottenere il valore della sequenza successiva [SQL: SQL non disponibile] "

Ecco la mappatura che sto usando al momento. Nota ANML_EVNT è il nome del generatore che voglio usare.

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


    </id>
È stato utile?

Soluzione

Se stai ancora cercando una risposta, ecco come l'ho usata con successo.

Uso il " nativo " generatore perché quando ho aggiunto il supporto per SQL Server al nostro programma, l'unica cosa in NHibernate che ho dovuto cambiare era il tipo di generatore in "nativo" perché Firebird e SQL Server implementano la loro "identità con incremento automatico" colonne in modo diverso. In Firebird utilizzava il generatore denominato e in SQL Server ignora la "sequenza" e utilizza l'incremento automatico incorporato.

Ecco l'esempio di cosa sto parlando:

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

Detto questo, come ha risposto gcores, tutto ciò che sembra essere sbagliato nella tua configurazione è il extra " > " dopo ANML_EVNT.

Altri suggerimenti

Sembra tutto a posto. Il problema non è la parentesi finale dopo ANML_EVNT, giusto?

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


</id>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top