C# 对类的属性值进行脱水时出错

C# 对类的属性值进行脱水时出错,c#,nhibernate,C#,Nhibernate,我试图插入一个对象,但它向我抛出错误:正在为FrancosPoS.DBMapping.order.obs脱水属性值 我在这里找了很久了 , 及 ,, 但没有一个成功 我已经检查并重新检查了到多列声明的映射,但没有发现任何问题 我的线索是,问题与MySQL数据库上的bigint和标识生成器有关。当我将其更改为increment时,脱水错误消失,出现索引超出范围异常 此外,这在会话保存调用中发生。使用增量生成器,错误发生在提交时间 以下是我的订单xml映射: <?xml version="1.

我试图插入一个对象,但它向我抛出
错误:正在为FrancosPoS.DBMapping.order.obs脱水属性值

我在这里找了很久了

,

,, 但没有一个成功

我已经检查并重新检查了到多列声明的映射,但没有发现任何问题

我的线索是,问题与MySQL数据库上的bigint和
标识生成器
有关。当我将其更改为
increment
时,脱水错误消失,出现
索引超出范围
异常

此外,这在
会话保存
调用中发生。使用
增量
生成器,错误发生在
提交
时间

以下是我的订单xml映射:

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="FrancosPoS" namespace="FrancosPoS.DBMapping" xmlns="urn:nhibernate-mapping-2.2">
<class name="order" table="`order`" lazy="true" >
<id name="idOrder">
  <generator class="identity" />
</id>
<many-to-one lazy="false" name="employee">
  <column name="idEmployee" sql-type="bigint(20)" not-null="false" />
</many-to-one>
<many-to-one lazy="false" name="customer">
  <column name="idCustomer" sql-type="bigint(20)" not-null="false" />
</many-to-one>
<many-to-one lazy="false" name="address">
  <column name="idAddress" sql-type="bigint(20)" not-null="false" />
</many-to-one>
<property name="date">
  <column name="date" sql-type="datetime" not-null="true" />
</property>
<property name="bakingTime">
  <column name="date" sql-type="datetime" not-null="false" />
</property>
<property name="price">
  <column name="price" sql-type="decimal(8,4)" not-null="true" />
</property>
<property name="cash">
  <column name="cash" sql-type="tinyint(1)" not-null="false" />
</property>
<property name="credit">
  <column name="credit" sql-type="tinyint(1)" not-null="false" />
</property>
<property name="houseNumber">
  <column name="houseNumber" sql-type="bigint(20)" not-null="false" />
</property>
<property name="complement">
  <column name="complement" sql-type="bigint(20)" not-null="false" />
</property>
<property name="obs">
  <column name="obs" sql-type="varchar(350)" not-null="false" />
</property>

<bag name="orderPsi" table="ordPsi" cascade="all" inverse="true">
      <key column="idOrdPastaI" />
      <one-to-many class="ordPsi" />
</bag>
</class>
</hibernate-mapping>

Net代码的有趣命名方案,但您不应该同时需要and和idOrder。

Net代码的有趣命名方案,但您不应该同时需要and和idOrder。

我通过反复试验找到了解决方案,注释数据库中可能为空的xml文件上的所有映射,我陷入了
bakingTime
属性:

<property name="bakingTime">
  <column name="date" sql-type="datetime" not-null="false" />
</property>
此外,这篇文章仍然很有价值,尽管并不新鲜:


我通过反复试验找到了解决方案,对数据库中可能为空的xml文件上的所有映射进行了注释,我陷入了
bakingTime
属性:

<property name="bakingTime">
  <column name="date" sql-type="datetime" not-null="false" />
</property>
此外,这篇文章仍然很有价值,尽管并不新鲜:


我明白了。这不是以前的事,我只是试着用它看看这是否有帮助。我将编辑帖子以删除。谢谢,我明白了。这不是以前的事,我只是试着用它看看这是否有帮助。我将编辑帖子以删除。谢谢,我也犯了同样的错误。我将两个不同的属性映射到DB中的同一个字段,结果在不同的属性上(而不是在问题所在的属性上)出现了许多奇怪的“错误脱水属性”错误(其中“索引超出范围”和“指定的强制转换无效”)。所以我花了一段时间才找到问题的真正根源。我犯了同样的错误。我将两个不同的属性映射到DB中的同一个字段,结果在不同的属性上(而不是在问题所在的属性上)出现了许多奇怪的“错误脱水属性”错误(其中“索引超出范围”和“指定的强制转换无效”)。所以我花了一段时间才找到问题的真正根源。
<property name="bakingTime">
  <column name="date" sql-type="datetime" not-null="false" />
</property>
<property name="bakingTime">
  <column name="bakingTime" sql-type="datetime" not-null="false" />
</property>