NHibernate によって返される内容が DB の内容と一致しないという明らかなキャッシュの問題に遭遇しました。
これはレベル 2 のキャッシュ データだと思います。Evict を使用してこれを行うことができるように見えますが、実際に Evict メソッドを呼び出す必要があるのはいつですか? 私の特定のアプリケーションでは、データはユーザーに固有のものになり、提供されたデータは一度しか使用されない可能性があります*。
これらのオブジェクト セットのレベル 2 キャッシュを完全に無効にすることはできますか?
10/31更新
私のシナリオは次のとおりです。顧客がアイテムを追加および削除するショッピング カートがあります。私がやっていることは次のとおりです。カートへの更新が処理される前に、エンティティCart
とCartProduct
エンティティを削除します。これが完了したらCartProducts
、プロバイダーからリストを取得し、ビューを返します (これは .NET MVC コントローラーで発生しています)。
11/3更新
その後、ショッピング カートは終了し、同じ NHibernate の問題に関連しているように見える問題に遭遇しましたが、実際には MVC の問題でした。さらに深く掘り下げると、HTML ヘルパー拡張機能が、私が想定していた値を上書きし、Model 状態のものに置き換えていることが明らかになりました。したがって、これには二重の打撃があります。これが誰かに役立つことを願っています。