他のエンティティのコレクションを持つエンティティを保存しようとするとNHibernateで問題が発生します。NHibernate Exception:孤立した削除のコレクションスナップショットがありません
この例では、OrderとOrderLineです。 OrderLineはOrder with a Bagに関連付けられています。そのカスケードはDelete-Orphanに設定されており、Orderに対してSaveOrUpdateを呼び出すと、OrderLinesに対してSaveOrUpdateが呼び出されます。
例外はOrderのSaveOrUpdateで発生しますが、OrderLineのコレクションがnullでない場合にのみ発生します。
カスケードを「delete-orphan」に設定する前に、「すべて削除 - 孤立」していました.OnlineLineのSaveOrUpdateをNHibernateに利用できると思いました。問題は、各OrderLineにNumberが一意でなければならないということです。 Number = 2のOrderLineを削除し、Number = 2の新しいOrderLineを追加すると、NHibernateは古いOrphanを削除する前に新しいレジストリを挿入して更新するため、再度保存しようとすると例外がスローされます。
これにより、Orderエンティティ(Number = 2 OrderLineをコレクションから削除したもの)を保存すると、そのOrderLineが削除され、現在のOrderLinesに対してSaveOrUpdateを呼び出すと、一意のキー違反。
私はオーダー自体を保存するときに例外が発生するので、そうしませんでした。
ご協力いただければ幸いです。 ありがとう