我有一個自我加入員工實體類與自我關聯的id,名稱和ref列。我想創建新的實例並將其保存到數據庫。對象引用一個未保存的瞬態實例保存沖洗前的瞬態實例
起初我創建了一個Employee類的實例並命名爲manager。然後我從Employee表中獲取這些值的記錄:Id = 1,Name =「A」,RefId = null 並將這些值設置爲manager對象。之後,我再次創建Employee類的實例
並將其屬性值設置爲: emp.Name =「B」,emp.Ref = manager。 最後我堅持使用base.Add(資源)方法。那時Nhibernate提出了以下錯誤: 「對象引用未保存的瞬態實例在沖洗前保存瞬態實例」。
這是映射文件的內容:
<class name="Employee" table="Employee" schema="dbo" optimistic-lock="none" lazy="true">
<id name="Id" access="property" column="Id">
<generator class="identity" />
</id>
<property name="Name" type="String" column="Name" length="50" />
<property name="RefId" type="Int64" column="RefId" insert="false" update="false"/>
<many-to-one name="Ref" class="Employee" column="RefId" not-null="false" fetch="select" />
class>
請幫我解決這個錯誤。 THX
只是要說清楚,你的意思是說有一個對象是自引用的,或者你的意思是說有兩個員工對象,它們之間有引用? IE,是否有兩個員工記錄,其間有外鍵,或者一個員工記錄的外鍵指向主鍵。 – bzarah
另外,爲僱員實體提供映射文件或代碼會很有幫助。 – bzarah
感謝您的建議。我會盡量更清楚。我編輯了我的問題。有兩個僱員記錄,他們之間有外鍵。 –