0

获取 ajax 响应时出现 500 个内部错误。

这是控制器的ajax函数:

   [GridAction]
    public ActionResult SelectItemGridAjax(int OrderID)
    {
        return View(new GridModel(ordersRepository.GetOrderItemsTK(OrderID).ToList()));
    }

这是存储库发送的内容:

   public IEnumerable<ItemsInOrder> GetOrderItemsTK(int OrderID)
    {
        using (var context = new techrundb())
        {
           var  result = (from p in context.ItemsInOrders.Include("Order").Where(i=>i.OrderID == OrderID) select p).ToList();
           return result;
        }
    }

这是服务器响应:

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

Order 和 ItemsInOrder 之间有一个“循环引用”。但是,如果我删除 Include("Order") 我会在网格枚举 ItemsInOrder 对象(在 Order 参考字段上)时出现异常。

此错误与循环引用有关吗?我应该怎么办 ?创建一个新对象并在往返网格的途中手动替换它?

4

1 回答 1

0

我通过从数据库返回的列表中创建一个新的 POCO 项目列表解决了这个问题。我不认为这是最好的解决方案,而且肯定不是一个有效的解决方案,但它使网格工作。

希望能有更好的解决方案。

于 2011-01-13T12:25:48.010 回答