2016-09-06 74 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正试图产生一个不正确的身份,并把我这个奇怪的例外。

好吧。 问题解决..也许这个帮助的人:)