我有一个自我加入员工实体类与自我关联的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
感谢您的建议。我会尽量更清楚。我编辑了我的问题。有两个雇员记录,他们之间有外键。 –