2013-08-01 29 views
0

這裏有小問題。 繼承人的代碼:「ObjectContext實例已經處理完畢,不能再用於需要連接的操作」

using (LINKSEntitiesMaster LE = new LINKSEntitiesMaster()) 
      { 

       Cache["ALLDB"] = LE;     

      } 

internal void FilterDB(string ParentPageTitle, string ButtonName) 


    { 

     var ALLdb = (LINKSEntitiesMaster)Cache["ALLDB"]; 


     var x = ALLdb.MainTables.Where(s => s.Language == ParentPageTitle && s.ButtonName == ButtonName).Select(w => w.AllLinks).ToList(); 



     Links.DataSource = ALLdb; 
     Links.DataBind(); 


} 

錯誤是話題。 我將過濾的數據庫保存到一個列表,不知道爲什麼連接關閉...?

我一直在尋找,但無法罰款的答案。

+1

它放置了第二個使用塊結束,因此您的緩存中存儲一​​個處置的上下文。 – asawyer

回答

1

由於LINKSEntitiesMaster LE = new LINKSEntitiesMaster()被封裝在using語句中,連接可能會被關閉。一旦你的代碼去using範圍LINKSEntitiesMaster得到處置。

+0

因此,我需要連接的每個函數都必須再次打開它,我想打開一個連接並將所有數據庫存儲在CACHE中,並在需要時使用它 – MaxPetya

+0

如何才能刻錄數據庫?並在不打開連接的情況下使用它? – MaxPetya

+0

我建議看看使用某種ORM像EntityFramework。你連接了什麼樣的數據庫? –

相關問題