私は、ほぼ半分の時間実行するクエリからデータを取得し、それをWebページに持ってくる必要がある状況があります。 私は、アプリケーション用のEntity Framework(EF、データアクセスレイヤ、Bizロジックレイヤ、UI)と一緒に4層アーキテクチャを使用しています。 DALへのインスタンスが作成されたとき(DALはデータベースからデータを取得する)、このインスタンスを再利用できるようになるためシングルトンメソッドを使用しようとしているため、追加のインスタンスは作成されません同一セッション内の。 セッション状態を設定し、状態サーバーでインスタンスの可用性をチェックするにはどうすればよいですか?セッション状態変数とシングルトンクラス
public static Singleton getInstance() {
if (**instance == null**)
instance = new Singleton();
return instance;
}
ブロックif
にはどのようなものがありますか? if
ブロックでどのような条件を確認する必要がありますか?私は本当に私がやらなければならないことについては確信しています。
PS:このセッションには、5分のタイムアウトが必要です。私はこれがWeb.configファイルで指定できると聞いています。それは本当ですか?
セッションは名前の値のコレクションです。 DALのインスタンスを名前で取得し、値がnullであるかどうかを確認します。それがヌルでない場合は、DALのインスタンスにキャストします。それが価値あるものであれば、私はこのパターンに従わないだろう。リクエストごとにインスタンスを作成して削除することを避けたいDALの作成については、どれほど費用がかかりますか? – Maess
DALのオブジェクトが作成されるたびに、DBにアクセスし、複雑なクエリを含むストアドプロシージャにアクセスし、データが出るまでに1分ほどかかります。私はインスタンスを格納し、それを高速アクセスのために2度目に再利用することを考えています。 – krishgopinath
ユーザーセッションごとに個別のDALを作成していますか? DALがセッション固有の理由は何ですか?静的なプロパティを持つDALのファクトリを持つことはできませんか?プロパティが呼び出されると、DALインスタンスのファクトリの静的メンバが 'null'かどうかを確認します。存在する場合は、インスタンス化して戻ります。そうでない場合は、ただ返します。 – David