即時通訊使用多層的aproach,我有一個mvc4項目的視圖,一個dll項目的Busines邏輯,一個DLL項目爲我的數據訪問和一個dll proyect到我的EF5上下文(edmx)和實體(.tt)。 我有我的一個.TT「醫生」類,這個類中還含有「專業」的列表,作爲一個多對多的關係,所以EF給我:懶加載試圖加載已經從外部函數加載的數據
Doctor---DOCTOR_SPECIALTY-----Specialty
取消我的醫生的數據存取權限類我有一個通用的功能,以獲得一名醫生和一般功能,以獲得一個特定的醫生的專業,然後在我的醫生邏輯類我有一個功能,當我創建一個醫生,然後使用我的數據2功能,激活圖層並將其返回給我的MVC4應用程序。
在我的MVC aplication我需要循環使用foreach
循環特色的列表
,但是當y嘗試存取權限的doctor_specialty收集我得到了一個錯誤:
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
我相信的,這是因爲對於一些原因應用是拖延數據,而不是使用它已有的集合(我有調試器上的集合是在那裏,包含正確的數據chk),但我不知道爲什麼
我知道,如果我做了一個包括所有doctor_specialty.scpecialty將是確定,但我想知道爲什麼,如果我得到一個diferent查詢doctor_specialty,在diferent上下文並將其添加到我的醫生對象,當我嘗試讀取它時,懶惰的負載而不是讀取集合上的值 – EricGS
@EricGS我認爲錯誤的意思是查詢的執行已延遲,並且在嘗試之前已經處理了上下文訪問。您可以通過.ToList()進行貪婪加載,或者禁用延遲加載,如果這是您想要的方式。 – KrishnaDhungana