2011-04-22 66 views

回答

1

沒有EF不提供標量和複雜屬性的延遲加載。訣竅是使用表分割,其中來自單個表的數據被映射到與一對一關係相關的兩個實體。一個實體是委託人,它包含對委託人的導航屬性,因此您可以使用延遲加載。 Here is the question帶鏈接如何在EDMX中做到這一點,答案提供了代碼優先的映射解決方案(註釋包含MSDN論壇中另一個示例的鏈接)。

+1

我討厭EF))))謝謝! – zonder 2011-04-22 21:07:07

+0

@zonder,+1,完全同意你的看法。這種「表分裂」策略是缺乏像普通的普通惰性加載這樣必要功能的最醜陋的解決方法。 – 2011-04-27 21:10:32

+0

EF s * cks。我有一個xml有效載荷表,我希望能夠排除一些(實際上大部分)時間。你認爲我可以 - 不。我決定現在就加載它,然後我將手動創建連接。我經常會在最後拋棄這些框架。一次又一次。 – Jim 2012-03-08 07:35:12

-1

我想不出任何你希望在表中使用懶惰加載列的情況,並且無法將它放在自己的表中並映射一個單獨的實體來表示它。如果你想要一個懶惰加載的列,那麼它可能是一個很好的指示,你需要創建一個單獨的實體。如果您將EF映射到舊數據庫,則忽略我剛剛說的所有內容。

+0

例如,當您需要使用實體在列表中進行顯示以及創建或更新時。列表中不需要加載實體的所有信息。當需要使用實體數據的一部分時,這是很多情況之一。 – zonder 2011-07-20 16:01:13

+0

任何比簡單字符串更大的東西,比如圖像數據,xml或其他附加到實體的有效載荷數據。爲什麼我必須創建一個一對一的關係和索引,每次我有一個圖像/ XML或其他。一對一的關係在最好的時候是痛苦的,所以爲什麼要擴散他們。 – Jim 2012-03-08 07:38:48