首页 文章

实体框架错误:ObjectContext实例已被释放,不能再用于需要连接的操作

提问于
浏览
2

我正在使用实体框架与业务稍后,DAL和基础接口 . 我在我的存储库中继承了IDispose接口,我在尝试获取此列表时遇到以下错误 . 我遇到的大多数示例建议使用IEnumerable并为查询添加.ToList(),我已经如下所示 . 我怎么能绕过这个?这是在我有类似的多个相关实体查询的其他地方工作,我不明白为什么我在这里得到错误?如果有人可以通过代码中的示例指出如何解决这个问题,那就太棒了 .

public IEnumerable<Orders> GetOrdersByCustomer(int customer_id)
{
    IEnumerable<Orders> ordersList = context.Employees
        .Include("Orders")
        .Include("Customers")
        .Where(c => c.Customers.customer_id == customer_id)
        .ToList();

    return ordersList;
}

2 回答

  • 3

    我发现它不工作的原因实际上我不得不做类似的事情

    public IEnumerable<Orders> GetOrdersByCustomer(int customer_id)
    {              
        IEnumerable<Orders> ordersList = context.Employees
            .Include("Customers")
            .Include("Customers.Orders")
            .Where(c => c.Customers.customer_id == customer_id)
            .ToList();          
        return ordersList;
    }
    
  • 1

    这听起来像是"owns" context 处理了它的任何类,并且 IEnumerable<Orders> ordersList = context.Employees.Include 行中的后续调用正在抛出错误 .

相关问题