NHibernateの実装とLazyLoadingを使用したプロジェクトがあります。このプロジェクトには、人と家族の2つのクラスがあります。これら2つの関係は集約であり、人が家族のリストを持っていることを意味します。マッピングは:
<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")
{
fam.Code = 100;
SessionInstance.Update(fam);
}
ファミリは更新されていません。このメッセージによって例外がスローされるためです: `同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられています:193、エンティティ:Domain.Entities.Family
家族を更新するにはどうすればよいですか?