請幫助我,我是EF.Lazy新加載的POCO對象似乎沒有工作。延遲加載不適用於實體框架中的POCO類
- 我POCO類在一個sepearte組件,一個比一個用於數據存取(即DAL)
數據接取層簡單地換到EF的對象上下文進行的調用其他。請參考下面
public FilterMaster GetFilter(long ID) { FilterMaster entity = new FilterMaster(); try { using (var context = new RadarEntities()) { //context.ContextOptions.LazyLoadingEnabled = false; //context.ContextOptions.ProxyCreationEnabled = true; entity = context.FilterMasters.SingleOrDefault(filter => filter.ID == ID); //context.FilterMasters.Include( context.LoadProperty(entity, "SQLQuery"); } }
- 當完成DAL呼叫時,ObjectContext的丟失的代碼,當我試圖獲取根POCO類的相關子對象,我得到空。
- 我已經嘗試明確啓用ProxyCreation,EnabledLazyLoading,檢查生成的代理clases不密封和所有相關的屬性被標記爲虛擬(如其他一些鏈接建議)。 - 由於延遲加載不起作用,我想急切地加載所有相關的POCO對象,因此嘗試調用LoadProperty方法,該方法起作用。
Q1:我是Imissing一些延遲加載不工作? Q2:如果我想要加載所有相關的子對象,必須爲所有屬性調用LoadProperty方法,或者有更簡單的方法嗎?
但隨後POCO的目的將被打敗的gthen woould成爲持久性認識。目前只有DAL API具有對ObjectContext的引用。 – 2012-01-18 21:37:52
@BrikeshKumar:但是你的上層有一個DAL API類的引用(或者也許只有一個接口)。您只需將'ObjectContext'作爲該類中的私有成員,並且不要在每種方法中創建和處理它。上層仍然沒有看到有關上下文的任何信息。如果由於某種原因你無法做到這一點,那麼你有一個懶惰加載不友好的架構,並且不能真正使用延遲加載。 – Slauma 2012-01-18 21:54:49
謝謝Slauma !!我正在嘗試。我將Object上下文類從DAL項目中取出,並將它的實例注入DAL類的構造函數中......當前運行到上下文類的問題無法找到元數據.. – 2012-01-19 03:02:02