ObjectContext を HttpContext.Current 内に配置して、同じリクエスト内のすべてのロジックが毎回開いたり破棄したりせずにアクセスできるようにすることを検討しています。ObjectContextManager クラスでこれを作成しました。
get {
string ocKey = "ocm_" + HttpContext.Current.GetHashCode().ToString("x");
if (!HttpContext.Current.Items.Contains(ocKey))
HttpContext.Current.Items.Add(ocKey, new JEntities());
return HttpContext.Current.Items[ocKey] as JEntities;
}
そして、現在のリクエストでクエリを実行するたびに、この静的プロパティを呼び出します。
public static JEntities CurrentObjectContext {
get {
if (ObjectContextManager == null)
InstantiateObjectContextManager();
return ObjectContextManager.ObjectContext;
//return new JobsEntities();
}
}
ただし、2 番目のクエリを実行しようとすると破棄されます。どこで間違ったのか教えてもらえますか?