3

私はNHibernateとCastle Windsorの両方の初心者ですが、現在取り組んでいるアプリケーションは、Castle WindsorのNHibernate機能統合レベル2、つまりISessionManagerを使用しています。

データを手動で永続化するために必要なことと、ISessionManager を使用するために必要なことを比較しましたが、それほどコードを書いているわけではありません。私の質問は、なぜ ISessionManager が必要なのですか? それは私にどのような利点を提供していますか? ISessionManager を使用することの欠点は何ですか?

4

1 に答える 1

1

まず第一に、セッションを自分で管理する必要はありません。Web環境では、通常、セッションまたはリクエストのスコープを設定する必要があります。セッションマネージャは、「OpenSession」への最初の呼び出し元が新しいセッションを開始することを保証しますが、ネストされた呼び出しは「OpenSession」を呼び出すときに同じセッションを取得します。httpmoduleでセッションを開始/終了するか、AOPパターンを使用して同じことを自分で行うことができます。これを行うと、1つのデータベースに対して作業していることを意味し、複数のデータベースを自分で処理するのは少し面倒になります。ISessionManagerは、1つを処理するのと同じように、複数のデータベースをきちんと処理します。

+セッションを処理します軽量で邪魔にならないシンプル複数のデータベースに対して作業するための簡単なサポートホスティングに依存しない(IISの場合と同様にnservicebushostingでも機能します)

-DAL/リポジトリ/あなたがそれを呼ぶものは何でもあなたのもう少しボイラープレートコード

于 2011-11-20T06:46:24.513 に答える