Fluent nHibernate/ASP.NET MVCを使用してアプリケーションを構築しています。私は掘り出したことがあり、永続的なSessionFactoryを開いてから、データベースへのリクエストごとにセッションを使用します。さて、これは良いと思います...「Permanent」SessionFactory、ASP.NET MVC、およびnHibernate
これを達成する方法はかなり混乱しています。私が見つけたものは、何らかのIoCコンテナシステムを使用する構造化フレームワーク全体を前提としています。このようなデザインを実装する方法の簡単な例はありますか?
私はWhere can I find a good NHibernate and ASP.NET MVC Reference Application
を見て撮影しさえブック「アクションでASP.NET MVC」を読んで、それは一例だきているだけで、はるかに複雑な私が達成しようとしているものよりも。私はシングルトンモデルが 'global.asax
'のApplication_Startで動作すると思っていましたが、それは私が望んでいた結果をもたらしませんでした。それは私の工場を廃棄し続け、決してそれを作り直すことはありません。
いつも「開く」と「閉じる」セッションをしたいですか?私が愚かに聞こえるならば、私はごめんなさい、これは私が把握するのは非常に難しいです。 SessionFactoriesはセッションを作成し、セッションは「使い捨て」ですが、私は工場をSingletonのままにしますか? – Ciel
セッションファクトリは、作成するための高価なリソースです。そのため、アプリケーションの存続期間中に一度作成して再利用することをお勧めします。スレッドセーフでもあります。セッションは、データベースにアクセスする必要があるたびに、セッションファクトリを使用して作成されます。それらは非常に高速に作成でき、すべてのクエリで開いたり閉じたりできます。セッションファクトリとは異なり、セッションはスレッドセーフではありません。 –
これはまさに私がやりたいことです。私はちょうど私のテストコードで頻繁に再現されている工場で問題が発生している。実際のシナリオでは、それは起こるべきではありません、そうですか?私はアプリケーションを頻繁に起動していないので、Webサイトを再起動しないと呼び出されてはいけません。 – Ciel