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>