2016-09-06 70 views
0

我想弄清這個奇怪的映射行爲的nhibernate。NHibernate的奇怪的序列映射行爲

我有PostgreSQL中的序列號和我的mapping.hbm.xml文件是這樣的:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> 
     <class xmlns="urn:nhibernate-mapping-2.2" schema="core" name="Tecplas.Data.Models.Core.User, Tecplas.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="usuario"> 
     <id name="Id" type="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <column name="usu_identi" /> 
      <generator class="native"> 
      <param name="sequence">seq_usuario</param> 
      </generator> 
     </id> 
     <property name="CreatorProgram" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <column name="usu_prog_criacao" /> 
     </property> 
     <property name="CreationDate" type="System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <column name="usu_data_criacao" /> 
     </property> 
     <property name="UpdateProgram" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <column name="usu_prog_alteracao" /> 
     </property> 
     <property name="UpdateDate" type="System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <column name="usu_data_alteracao" /> 
     </property> 
     <property name="Login" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <column name="usu_login" /> 
     </property> 
     <property name="Password" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <column name="usu_senha" /> 
     </property> 
     <many-to-one class="Tecplas.Data.Models.Core.User, Tecplas.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="CreatorUser"> 
      <column name="usu_usu_criacao" /> 
     </many-to-one> 
     <many-to-one class="Tecplas.Data.Models.Core.User, Tecplas.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="UpdateUser"> 
      <column name="usu_usu_alteracao" /> 
     </many-to-one> 
     </class> 
    </hibernate-mapping> 

,我正的錯誤是

"Dialect does not support identity key generation" 
    .... em NHibernate.Dialect.Dialect.get_IdentitySelectString()\r\n em GetIdentitySelectString(Object) 

我也改變了發電機類型SEQUENCE,但它給了我同樣的錯誤。

誰能幫助?

回答

0

問題在於nhibernate序列化。

我被序列化模型JSON和我沒有使用的代碼從這個鏈接JSON.NET and nHibernate Lazy Loading of Collections

其實這個錯誤是很奇怪的。我的查詢是'GET'查詢,不會混淆身份生成。但即使這樣,nhibernate正試圖產生一個不正確的身份,並把我這個奇怪的例外。

好吧。 問題解決..也許這個幫助的人:)