2009-10-08 55 views
1

如何在LINQ to SQL中延遲加載關聯(EntitySet)?您無法在設計器中設置延遲加載關聯,並且我也找不到它的DBML屬性。我查看了DataLoadOptions,看看是否有這種方式延遲加載它們,但DataLoadOptions實際上只是提供了一種方法來模擬爲屬性和關聯生成的SQL(並強制加載延遲加載的屬性)。LINQ to SQL:延遲加載關聯

這是我們非常重要的功能,因爲我們有一個很重的對象圖被推送到數據庫。當加載一些頂級對象時,我不想加載其關聯的子實體,直到用戶實際請求該數據爲止。對於單個屬性很容易做到,但我找不到一種方法來完成關聯。 EntitySet集合似乎支持這個概念,所以必須有一種方法。

回答

3

在Linq to SQL中默認啓用延遲加載 - 使用EntitySet和EntityRef支持此功能。

+0

有趣。這是否反映在文檔中的任何位置?它是有道理的,默認情況下,EntitySet會延遲加載,但我沒有看到它在文檔中的任何地方。 – 2009-10-08 16:52:06

+0

Microsoft將其稱爲「延遲加載」而不是「延遲加載」。查看Linq to SQL的以下MS文檔。 http://msdn.microsoft.com/en-us/library/bb425822.aspx 並做一個「延遲加載」的文本搜索(你也會發現延遲執行這是別的) – 2009-10-08 17:34:42