我有一个项目由NHibernate实现和使用Lazy加载.
我在这个项目中有两个班:人与家庭.
这两者之间的关系是聚合,意思是Person有一个Person列表.
地图是:
我在这个项目中有两个班:人与家庭.
这两者之间的关系是聚合,意思是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);
家庭没有删除,因为这个消息抛出异常:
删除的对象将被级联重新保存(从关联中删除已删除的对象)[Domain.Entities.Family#167]
我如何删除一个人的家庭?