【问题标题】:LINQ to SQL: How does EntitySet lazy load objects?LINQ to SQL:EntitySet 如何延迟加载对象?
【发布时间】:2010-09-02 06:40:54
【问题描述】:

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

我读了一些关于EntitySet 的文章,并意识到它有一个Load() 方法。有谁知道 Load 究竟是如何工作的?我假设它应该引用DataContext(或EF 中的ObjectContext)来加载请求的对象。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多