2011-09-08 36 views
2

我正在將實體框架與企業後來的DAL和基本接口一起使用。我繼承了我的存儲庫中的IDispose接口,我正在嘗試獲取此列表時遇到以下錯誤。我遇到過的大多數示例都建議使用IEnumerable併爲查詢添加.ToList(),並且我已經在下面看到了。我怎樣才能解決這個問題?這是在其他地方工作,我有類似的多個相關的實體查詢,我不明白爲什麼即時通訊錯誤在這裏?如果有人可以用代碼示例指出如何解決這個問題,那將會很棒。實體框架錯誤:ObjectContext實例已被處置並且不能再用於需要連接的操作

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; 
} 

回答

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; 
} 
+0

由於它不是原因實際工作 - 似乎只要你包括你需要參考什麼,你沒有得到的錯誤。 – PeterX

+0

是的,訣竅是確保你在上下文處理完成後不訪問任何未包含的東西。 – TehOne

1

這聽起來像你有什麼類「擁有」 context配置了它,並在該行IEnumerable<Orders> ordersList = context.Employees.Include的後續調用拋出一個錯誤。

相關問題