0

我正在尝试将实体作为 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 我会收到错误消息。

有谁知道解决这个问题?

谢谢!

4

2 回答 2

2

当 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);
   }
 }

希望对您有所帮助!

于 2013-05-17T15:36:46.260 回答
2

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

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

更多在这里:

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

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

于 2013-05-17T15:34:29.537 回答