我是 EF 的新手,已经阅读了一些文章。阅读后我对延迟加载和预加载之间的区别感到困惑?
- 是否可以编译这两种类型的查询?
- 这两种类型的查询都可以返回
IQuerable
和IEnumerable
吗? - 两种类型的查询都可以使用 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/