在1个查询执行后处理的每个http请求的ObjectContext实例

时间:2011-05-30 08:33:15

标签: asp.net entity-framework objectcontext

我正在考虑将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();
  }
}

但是当它尝试执行第二个查询时会被处理掉。 你能告诉我哪里出错了吗?

1 个答案:

答案 0 :(得分:2)

处理完毕?您的代码与处理无关。如果你处理了上下文,那么你很可能将上下文检索包含在using中,并且你自己处理了这个实例。