CarというNhibernateオブジェクトがあります。このCarオブジェクトには、DoorsというPersietentBag IListコレクションがあり、すべて遅延読み込みされています。
もしそうなら(セッション1)
int singleDoor = Car.Doors[0];
最も怠惰なコレクションがdbからロードされ、関連するオブジェクトが第1レベルのキャッシュに追加されます。iは第1レベルのキャッシュにN個のオブジェクトCarとNDoorsがdbからロードされます。
別の手から(セッション2のコードの他の部分で)同じCarオブジェクトをロードし、同じ割り当てを行います
int singleDoor = Car,Doors[0];
およびiSESSION2からCarおよびすべてのDoor(s)オブジェクトを削除します
このオブジェクトの状態を変更し、保存と実行のためにSESSION1に接続されたオブジェクトをアタッチしたい
mySession.Update(Car);
しかし、Door(s)オブジェクトを更新しようとすると、明らかに同じIDを持つ別のオブジェクトがあるため、(同じIDを持つ他のオブジェクトなど)例外がスローされます。
ボットは、削除する古いオブジェクトを見つけるのが難しいのですが、どうすれば古いオブジェクトを削除したり、第1レベルのキャッシュをクリアしたり(タイプとIDのみ)、古いオブジェクトをキャッシュから破棄して必要なものを更新したりできますか?
前もって感謝します。