私はNHibernateの実装とレイジーロードを使ってプロジェクトを持っています。 私はこのプロジェクトに2つのクラスを持っています:人と家族。 これらの2つの間の関係は集約であり、PersonにPersonのリストがあることを意味します。 Mapingは次のとおりです。このプロジェクトでカスケードのエラー:削除されたオブジェクトがカスケードによって再保存される
<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によって人物を取得、その後の家族の人の家族を削除します。 deleted object would be re-saved by cascade (remove deleted object from associations)[Domain.Entities.Family#167]
どのように私は人の家族を削除することができます。このメッセージで例外をスローするので
Person person = SessionInstance.Get<Person>(id);
foreach (Family fam in person.Families)
if (fam.Name == "Jaun")
SessionInstance.Delete(fam);
家族、削除されていませんか?
'person.Families.Remove(fam); SessionInstance.Save(人); ' –
@Cole W:まったく。 – KeithS