Ошибка Entity Framework: экземпляр ObjectContext был удален и больше не может использоваться для операций, требующих подключения - PullRequest
2 голосов
/ 09 сентября 2011

Я использую 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 ]

3 голосов
/ 14 сентября 2011

Я нашел причину, по которой это не сработало, на самом деле мне пришлось сделать что-то вроде

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 голос
/ 09 сентября 2011

Звучит так, как если бы у вас был класс, которому «принадлежит», context утилизировал его, и последующий вызов в строке IEnumerable<Orders> ordersList = context.Employees.Include выдает ошибку.

...