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

时间:2011-09-08 21:48:15

标签: .net entity-framework entity-framework-4 entity

我正在使用Entity Framework与业务稍后,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 个答案:

答案 0 :(得分: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 :(得分:1)

听起来好像你拥有的context已经处理过的任何一个班级,而IEnumerable<Orders> ordersList = context.Employees.Include行中的后续调用都会引发错误。