c# - EF在急切加载和延迟加载方面的区别?

标签 c# .net entity-framework-4

我是 EF 的新手,已经阅读了一些文章。阅读后我对延迟加载和预加载之间的区别感到困惑?

  • 是否可以编译这两种类型的查询?
  • 这两种类型的查询都可以返回 IQuerableIEnumerable 吗?
  • 两种类型的查询都可以使用 Linq to Entities 查询语法(select、from、where)和 lambda 表达式吗?

请指导和帮助我。

非常感谢您的时间和指导

最佳答案

关于懒惰急切加载的区别:

假设您有一个 Customer具有属性 List<Invoice> Invoices 的对象(位于不同的表中并由 Entity Framework 自动连接)。

lazy加载发票不会在您的 Customer 对象被实例化时立即获取,而是仅在您需要它/显式访问它时才获取。

eager加载您的发票将立即在对象上获取和构造/填充(如果您构建了一个庞大的客户列表但实际上并不需要所有发票在对象上随时可用,这会引入一些不必要的性能开销)。

您会找到一些文档 here .

关于c# - EF在急切加载和延迟加载方面的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878439/

相关文章:

c# - 如何按前两个字符然后按字母顺序对列表中的对象属性进行排序

entity-framework - 使用 EF Code-First 模型在保存或验证之前执行逻辑

C# - 如何使用正则表达式替换 NULL 字符?

c# - Razor 和半整理的html标签

c# - 列表框.SelectedItem

entity-framework - Entity Framework POCO SaveChanges() on Update 不起作用?

asp.net - Entity Framework 4 unicode问题保存

c# - Xamarin Forms WebView 代理

c# - BDD、SpecFlow 和 Gherkin 一起

c# - 将不稳定的默认参数传递给 C# 方法