Tôi có một dự án bằng cách thực hiện NHibernate và sử dụng Tải Lười. Tôi có hai lớp trong dự án này: Người và Gia đình. Quan hệ giữa hai yếu tố đó là tổng hợp, có nghĩa là một người có danh sách Người. Bản đồ là:Lỗi trong Cascade: đối tượng đã xóa sẽ được lưu lại bởi thác
<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>
Trong dự án này, tôi Nhận một người bằng ID sau đó xóa một họ gia đình.
Person person = SessionInstance.Get<Person>(id);
foreach (Family fam in person.Families)
if (fam.Name == "Jaun")
SessionInstance.Delete(fam);
Gia đình không bị xóa, Bởi vì ném một ngoại lệ bởi thông điệp này: deleted object would be re-saved by cascade (remove deleted object from associations)[Domain.Entities.Family#167]
Làm thế nào tôi có thể xóa một gia đình người?
'person.Families.Remove (fam); SessionInstance.Save (người); ' –
@Cole W: Chính xác. – KeithS