【问题标题】:Error when returning entity as JSON将实体作为 JSON 返回时出错
【发布时间】:2013-05-12 20:08:51
【问题描述】:

我正在尝试以 JSON 格式返回一个实体,但我不断收到此错误:

ObjectContext 实例已被释放,不能再用于需要连接的操作。

这是我的代码:

public JsonResult ListAllDepartments()
{
    JsonResult jsonResult = null;
    using (var db = new EventTrackerDB())
    {
        var foundDepartments = from departments in db.EVNTTRKR_Departments
                                   select departments;
        jsonResult = Json(foundDepartments.ToList(), JsonRequestBehavior.AllowGet);
    }

    return jsonResult;
}

我不明白为什么会发生错误。我在结果集上调用了 toList()。

如果我转到 myapp/Departments/ListAllDepartments,我会收到错误消息。

有人知道解决办法吗?

谢谢!

【问题讨论】:

  • 试试var foundDepartments = db.EVNTTRKR_Departments..ToList(); jsonResult = Json(foundDepartments, JsonRequestBehavior.AllowGet);

标签: asp.net asp.net-mvc json asp.net-mvc-4


【解决方案1】:

using 块结束时,一切都在处理:

试试这个:

public JsonResult ListAllDepartments()
{
   using (var db = new UsersContext())
   {
      var foundDepartments = from departments in db.EVNTTRKR_Departments
                             select departments;
      return Json(foundDepartments.ToList(), JsonRequestBehavior.AllowGet);
   }
 }

希望对你有所帮助!

【讨论】:

    【解决方案2】:

    departments 对象可能具有当前延迟加载的某些属性。

    如果是这种情况,您需要预先加载或显式加载对象。

    更多:

    http://msdn.microsoft.com/en-us/library/bb896272.aspx

    http://msdn.microsoft.com/en-us/library/bb896249.aspx

    【讨论】:

      猜你喜欢
      • 2017-11-18
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 2019-04-05
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      相关资源
      最近更新 更多