在刷新之前保存瞬态实例,或者将属性的级联操作设置为使其自动保存的内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在刷新之前保存瞬态实例,或者将属性的级联操作设置为使其自动保存的内容相关的知识,希望对你有一定的参考价值。
我提交翻译时遇到一些错误。错误如下
对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例,或者将属性的级联操作设置为使其自动保存的操作。
我为TBASubType创建了一个.hbm.xml文件
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping namespace="M3.Entities" assembly="M3.Entities" xmlns="urn:nhibernate-mapping-2.2">
<class name="TBASubType" table="tBASubType" schema="dbo">
<id name="FSubTypeID" type="Guid">
<generator class="assigned" />
</id> <version name="FTimestamp" generated="always" unsaved-value="null" type="BinaryBlob"> <column name="FTimestamp" not-null="true" sql-type="timestamp"/> </version>
<property name="FType" type="Int32" precision="10" not-null="true" />
<property name="FName" type="String" length="50" not-null="true" />
<property name="FActive" type="Boolean" not-null="true" />
<many-to-one name="TSCEnterprise" class="TSCEnterprise" column="fEnterpriseID" not-null="true" />
<set name="TBADepositMasters" table="tBADepositMaster" inverse="true" cascade="all">
<key column="fSubTypeID" />
<one-to-many class="TBADepositMaster" />
</set>
</class>
</hibernate-mapping>
我该如何解决这个错误?
答案
我认为您正在使用hbm.xml文件来维护表之间的关系。如果您使用“多对一”关系,则意味着您将父母与子女的关系与表格联系起来。您应该使用insert =“false”update =“false”,如下所示:
<many-to-one
name="TSCEnterprise" class="TSCEnterprise"
column="fEnterpriseID" not-null="true"
insert="false" update="false" />
以上是关于在刷新之前保存瞬态实例,或者将属性的级联操作设置为使其自动保存的内容的主要内容,如果未能解决你的问题,请参考以下文章
TransientPropertyValueException:对象引用了未保存的瞬态实例 - 在刷新之前保存瞬态实例
使用 Fluent NHibernate AutoMapping 进行级联保存