私はNHibernateとCSLA.NETの両方にかなり慣れていないので、同じトランザクション(したがってセッション)内でデータベースに同じ行を2回保存する必要があるという問題に直面しています。SO wrt NonUniqueObjectException に関する他の質問を読んだり、多くのグーグルを行ったりしましたが、何もうまくいかないようです。
とにかく、私はセッションを作成し、トランザクションを開始し、myObject = myObject.Save() を実行します。私の理解では、CSLA は保存後に myObject の新しいインスタンスを作成して返します。これは明らかに myObject に割り当てられます。
後で (同じトランザクション内で)、 myObject.Save() を再度実行する必要があります。ここで NonUniqueObjectException が発生しています。myObject をロックして NHibernate セッションとマージしようとしましたが、うまくいかないようです。
他に試すべきことはありますか?NHibernate を使用して「ネストされた」トランザクションを実行する簡単な方法はありますか (ただし、それで問題が解決するかどうかはわかりません)。
提案をいただければ幸いです。