我有一个自连接员工实体类,包含id、name和ref列,与自身有关系。我想创建该类的新实例并将其持久化到数据库中。
首先,我创建了一个Employee类的实例并将其命名为manager。然后,我从Employee表中获取了一条记录,并将这些值设置为manager对象的属性:Id = 1,Name =“A”,RefId = null。之后,我再次创建了一个Employee类的实例,并设置它的属性值如下:emp.Name =“B”,emp.Ref = manager。最后,我使用base.Add(resource)方法将其持久化。此时,Nhibernate引发了以下错误:“对象引用了未保存的瞬态实例,请在刷新之前保存瞬态实例”。
以下是映射文件内容:
首先,我创建了一个Employee类的实例并将其命名为manager。然后,我从Employee表中获取了一条记录,并将这些值设置为manager对象的属性:Id = 1,Name =“A”,RefId = null。之后,我再次创建了一个Employee类的实例,并设置它的属性值如下:emp.Name =“B”,emp.Ref = manager。最后,我使用base.Add(resource)方法将其持久化。此时,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>
请帮我解决这个错误。 谢谢。