2011-11-02 7 views
0

私はWindowsアプリケーションでNhibernateを使用します。実行時にフォームを閉じた後、フォームを開いた後に手動でDbのデータを変更すると、新しい入力値ではなく古い値が表示されます。すべてのプログラムを終了して(殺害プロセス)、アプリケーションを再起動すると、新しい値が表示されます。NHibernateはDbから新しい値の代わりに古い値を取り出します

この質問は既にクリストファーによって尋ねられましたが、それに対する受け入れられた答えはありませんでした。

この問題を解決するために私を導いてください。

おかげ

+0

良い例を持っていますSession.Clear()メソッドを使用します。 –

+2

アプリケーションの存続期間中に単一のセッションを使用していますか? –

+0

@lan Nelson:はい、何らかの理由で私はアプリケーションの全寿命にわたって単一のISeesionを使用しています。あなたのアドバイスのためのあなたのアドバイスに感謝 –

答えて

4

あなたはNHibernateのセッション(最初のレベルのキャッシュ)がどのように動作するかを説明し、いくつかの文章を読むべきで、そうでなければ、それを使って大きな問題を取得します。

+0

はあなたの提案のための –

2

私にはあなたが必要以上に長いの周りのセッションを維持しているように聞こえます。次の記事をお勧めします.nhibernateを使用してwinformsアプリケーションを作成する人にとっては必須の読書です。あなたがプレゼンターごとにセッションを使用する必要がありますWindowsアプリケーションで

MSDN Magazine - Building a Desktop To-Do Application with NHibernate

+0

感謝 –

1

。このSO Question

は、ソリューションをご提供するかもしれないいくつかの良い答えを持っています。

も良いGoogleのフレーズは、(あなたがこのためにお金を払う必要があるでしょうが)、「プレゼンターあたりのセッション」

ザ・NHibernateのcookbookはまた、いくつかの試行錯誤の後、私はこの問題を解決することができ

+0

感謝 –

関連する問題