NHibernateセッションをASP.NETセッションにキャッシュしています。
ユーザーがオブジェクトを編集して、ISessionの最初のレベルのキャッシュに入れるという状況に遭遇しました。次に、別のユーザーが同じオブジェクトを編集しました。
この時点で、User1は編集の元のバージョンを引き続き表示しますが、User2はオブジェクトの正しい状態を表示しますか?
常にすべてのオブジェクトに対して明示的にsession.Refresh(myObj)を呼び出さずに、これを処理する正しい方法は何ですか?
また、第2レベルのキャッシュを有効にしています。NHibernate Long Sessionの場合、第1レベルのキャッシュを完全に無効にする必要がありますか?
編集:10.4.1から達成しようとしていることにいくつかの用語を追加します。自動バージョン管理を伴う長いセッションこのセクションの終わりは、
ISessionは(必須の)第1レベルのキャッシュでもあり、ロードされたすべてのオブジェクトが含まれているため、この戦略は、数回の要求/応答サイクルでのみ適切に使用できます。ISessionにもまもなく古いデータが含まれるため、これは確かに推奨されます。
おそらく両方を含めるためにこれがどのような種類のドキュメントであるかはわかりませんが、すぐにセッションに古いデータが含まれると言います(これは私が見ているものです)。これに対する解決策はここにありますか、それともありませんか?