まず、これが私の関係です
<class name="ServiceStep">
<id name="Id">
<generator class="guid.comb"/>
</id>
<set name="AdditionalInfoRows" cascade="save-update" >
<key column="ServiceStepId"/>
<one-to-many class="AdditionalInfoRow"/>
</set>
<class name="AdditionalInfoRow">
<id name="Id">
<generator class="guid.comb"/>
</id>
<set name="AdditionalInfos" cascade="save-update" >
<key column="AdditionInfoRowId"/>
<one-to-many class="AdditionalInfo"/>
</set>
これで、新しいServiceStepを作成し、それにAdditionalInfoRowsを追加すると、すべてが正常に機能し、正しく保持されます。
問題はアップデートによるものです。ServiceStepをロードすると、SetがAdditionalInfoRowsで正しくロードされます。私のアプリケーションでは、このセットに新しいAdditionalInfoRowsを追加します。次に、ServiceStepでSaveOrUpdateを呼び出します。新しく追加されたAdditionalInfoRowsは正しく永続化されますが、元のリストは接続を失います。ServiceStepを指すAdditionalInfoRowsのFKは、NHibernateによってNULLに設定されます。
誰かが私を正しい方向に向けることができることを願っています。