将实体作为JSON返回时出错

时间:2013-05-17 15:25:43

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

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

有人知道解决方案吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

更多信息:

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

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

答案 1 :(得分:2)

当使用块结束时,一切都被处理掉了:

试试这个:

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

希望对你有所帮助!