當我通過調用SaveOrUpdate()保存時,我得到了這個警告,並且在調用Transaction.Commit()之後數據沒有保存在數據庫中。NHibernate警告和數據不會保存
NHibernate.Engine.ForeignKeys - 無法 ,以確定是否[項目名稱]與 分配的標識符[PrimaryKey的]是 瞬態或分離;查詢 數據庫。在會話中使用顯式的Save()或 Update()來防止這種情況發生。
我插入一個新的對象。谷歌搜索告訴我調用Save()而不是SaveOrUpdate():意味着Save()僅用於插入。
我在谷歌搜索,沒有看到這個。 任何人都可以給我這個問題或此警告的建議嗎?
編輯: 這裏是模擬的樣本映射文件 -
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly=""
namespace="">
<class name="Customer" table="[dbo].[Customer]" optimistic-lock="none" >
<id name="CustomerId" column="CustomerId" >
<generator class="assigned"/>
</id>
<property name="Name" column="Name" />
<property name="Age" column="Age" />
<set name="CustomerDetails" cascade="none" inverse="true" fetch="select">
<key>
<column name="CustomerId"/>
</key>
<one-to-many class="CustomerDetail"/>
</set>
<many-to-one name="MGender" fetch="select" cascade="none">
<column name="GenderCode"/>
</many-to-one>
</class>
</hibernate-mapping>
<class name="CustomerDetails" table="[dbo].[CustomerDetail]" optimistic-lock="none" >
<id name="CustomerDetailId" column="CustomerDetailId" >
<generator class="assigned"/>
</id>
<property name="Detail1" column="Detail1" />
<many-to-one name="Customer" fetch="select" cascade="none">
<column name="CustomerId"/>
</many-to-one>
</class>
<class name="MGender" table="[dbo].[MGender]" optimistic-lock="none" >
<id name="GenderCode" column="GenderCode" >
<generator class="assigned"/>
</id>
<property name="Description" column="Description" />
<set name="Customers" cascade="none" inverse="true" fetch="select">
<key>
<column name="GenderCode"/>
</key>
<one-to-many class="Customer"/>
</set>
</class>
什麼是你的映射。 – Phill 2011-01-26 06:35:38