2

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 番目のクエリを実行しようとすると破棄されます。どこで間違ったのか教えてもらえますか?

4

1 に答える 1

2

処分?あなたのコードは処分とは何の関係もありません。破棄されたコンテキストを取得した場合、それはおそらくコンテキスト検索をに囲みusing、インスタンスを自分で破棄したことを意味します。

于 2011-05-30T08:39:56.553 に答える