2009-10-08 57 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