LINQ to SQL:EntitySet如何延迟加载对象?

时间:2010-09-02 06:40:54

标签: .net entity-framework linq-to-sql linq-to-entities

我一直在尝试为我们的项目实现自定义ORM,并且有兴趣了解LINQ to SQL或Entity Framework如何延迟加载对象。

我阅读了一些关于EntitySet的内容,并意识到它有一个Load()方法。有谁知道Load的工作原理是什么?我假设它应该引用DataContext(或EF中的ObjectContext)来加载请求的对象。

3 个答案:

答案 0 :(得分:0)

完全。仅当实体仍附加到上下文时,延迟加载才有效。它通常在某个集合或对象的顶部实现为代理,因此第一次访问代理时它会加载对象或集合。

答案 1 :(得分:0)

这是一个article处理LINQ to SQL中的查询执行类型。
至于实体框架,这里是similar article

答案 2 :(得分:0)

感谢。但我刚刚意识到代理与POCO对象一起使用,如果使用设计器生成的代码,则不会生成代理。在这种情况下,我注意到指向ObjectContext的私有(或可能是内部)字段。因此,如果需要,实体可以与ObjectContext通信以查询更多数据。