重新保存我有NHibernate的實施和使用延遲加載的項目。 我在這個項目中有兩個班級:人員和家庭。 這兩者之間的關係是聚合,是指一個Person有一個Person列表。 馬平是:錯誤級聯:刪除對象將通過級聯
<class name="Person" table="Person_Person" >
<id name="Id" type="Int64" unsaved-value="0">
<generator class="native" />
</id>
<bag name="Families" inverse="true" table="Person_Family" cascade="all-delete-orphan" >
<key column="Person_id_fk"/>
<one-to-many class="Domain.Entities.Family,Domain.Entities"/>
</bag>
</class>
在這個項目中,我得到一個人的ID,然後取出一個家庭的家庭的人。
Person person = SessionInstance.Get<Person>(id);
foreach (Family fam in person.Families)
if (fam.Name == "Jaun")
SessionInstance.Delete(fam);
家庭沒有被刪除,因爲此消息拋出一個異常: deleted object would be re-saved by cascade (remove deleted object from associations)[Domain.Entities.Family#167]
如何刪除一個家族的人?
'person.Families.Remove(fam); SessionInstance.Save(person);' –
@Cole W:的確如此。 – KeithS