現在、現在の HttpContext を使用して LINQ データ コンテキストを格納する Web アプリがあります。コンテキストは、 Rick Strahl のブログごとに、ユーザーごとに現在のリクエストに対して永続化されます。
string ocKey = "ocm_" + HttpContext.Current.GetHashCode().ToString("x")
Thread.CurrentContext.ContextID.ToString();
if (!HttpContext.Current.Items.Contains(ocKey))
{
// Get new Data Context and store it in the HTTP Context
}
ただし、global.asax ファイルから実行される、HttpContext を持たないスクリプトがいくつかあります。 サーバーが「リクエスト」を行っているため、HttpContext.Current は NULLです。
データ コンテキストを格納するために使用できる同等のオブジェクトはありますか? 再作成やオブジェクトの取り付け/取り外しについて心配する必要はありませんか? プロセスの存続期間中、コンテキストを保持したいだけです。
更新しました:
現在、DAL ヘルパー クラスで静的変数を使用しようとしています。クラス内のいずれかのメソッドへの最初の呼び出しで、DataContext がインスタンス化され、静的変数に格納されます。プロセスの最後に、DataContext で Dispose を呼び出す別のメソッドを呼び出し、静的変数を NULL に設定します。