NHibernate の学習曲線に苦労しています。
私たちは現在、C# Winforms アプリケーションを NHibernate を使用するように移植しており、Gabriel Schenker によって詳述されているように Unit Of Work (UnitOfWork) を採用しています。
UnitofWork を「会話型」ベースで採用したいと考えています。たとえば、ユーザーがフォームを開くと、UnitOfWork セッションが開き、フォームが閉じられるまでこれを開いたままにします。フォームは、ビジネス上の会話を定義するための簡単な方法です。実装に応じてこれをわずかに変更する可能性がありますが、この例では、例としてフォームの開閉を使用してください。
別のフォームの上にフォームを開くというシナリオがある場合、問題が発生します。この例では、2 つの UnitOfWork が動作している必要があります。1 つは基になるフォームに対してまだアクティブであり、新しいフォームに対しては新しい UnitOfWork です。
これをどのように実装しますか?Gabriel が提供する UnitOfWork 機能では、UnitOfWork ごとに 1 つのセッションしか許可されませんか? 私の最初の考えは、アプリケーションの任意のフォームまたは一部からセッションを呼び出すことができるように、セッションをディクショナリに保存することです。
あなたの考え?