2012-04-21 93 views
1

我在啓用了延遲加載的上下文中有兩個實體。我正在使用POCO。當我加載第一個時,相關實體不會顯示,直到我加載第二個實體並導航它的實體。更具體地說,我將貨幣(它被標記爲虛擬)作爲CashAccount上的相關實體,CashAccount從Account繼承該實體以及SuspenseAccount,SuspenseAccount也從Account繼承它。當我加載SuspenseAccount時,貨幣爲空。但是,如果我加載CashAccount並使用它的Currency屬性,則SuspenseAccount的貨幣會正確加載。任何人有關於這是爲什麼以及如何解決它的想法?在實體框架中延遲加載的問題

+0

你可以用代碼寫下這個模型的簡要草圖,以及你如何加載實體的代碼? – Slauma 2012-04-21 12:17:55

+0

唷!我發現問題是什麼! SuspenseAccount類沒有公共構造函數(它只是構造函數被標記爲內部的)。顯然,這阻止了POCO LazyLoading邏輯的踢出,並且在訪問另一個實體的關係之後關係被修正了,因爲相關實體對於兩者都是相同的。 @Slauma - 謝謝。現在排序。 – Tolu 2012-04-21 12:26:05

+0

這很有趣!你能寫出這個答案嗎,所以人們可以看到問題解決了。 (你可以接受你自己的答案。)我前一段時間和私人構造函數有類似的現象(EF沒有創建延遲加載代理),但沒有受保護的構造函數。我沒有猜到內部構造函數可能是一個問題。 – Slauma 2012-04-21 12:32:51

回答

1

我發現問題是什麼! SuspenseAccount類沒有公共構造函數(它只是構造函數被標記爲內部的)。顯然,這阻止了POCO LazyLoading邏輯的踢入,並且在訪問另一個實體的關係之後關係被修正了,因爲相關的實體對於兩者都是相同的。