2013-03-24 108 views
0

我的對象eventTypeList不在上下文中,即使它在使用中也是如此。有什麼建議?對象超出範圍

錯誤消息:ObjectContext實例已被處置,不能再用於需要連接的操作。

public ActionResult GetEventTypeList() 
{ 
    List<EventType> eventTypeList; 
    using (var db = new ICTTBEntities()) 
    { 
     eventTypeList = (from et in db.EventTypes select et).ToList(); 
     var result = new { Result = "OK", Records = eventTypeList }; 

     return Json(result, JsonRequestBehavior.AllowGet); 
    } 
} 

回答

0

該問題可能是一個或多個正在被延遲加載而不是急切加載的關係。好消息是,您不需要using聲明DbContext作爲上下文已經管理連接,幾乎不需要處理(比較,http://stephenwalther.com/archive/2008/08/20/asp-net-mvc-tip-34-dispose-of-your-datacontext-or-don-t.aspx)。或者,您可以通過設置上下文的加載選項來確保您擁有的任何關係都是熱切加載的。

注意:如果使用IoC並注入上下文而不是直接創建上下文,則可以完全避免該問題,因爲DI框架將負責爲您清理上下文。

+0

看更多的資料這正是錯誤,謝謝!結束創建簡單對象來表示它們,因爲它是很少使用的非常小的數據集合。 – user2205196 2013-03-24 19:19:51