实体框架查询——加载数据优化

Posted

技术标签:

【中文标题】实体框架查询——加载数据优化【英文标题】:Entity Framework query - loading data optimization 【发布时间】:2017-11-12 18:51:57 【问题描述】:

我在查询中使用FirstOrDefaultFirst 命令来检索与我的数据库中的其他实体有关系的实体的数据。

我的问题是:集合上的FirstOrDefaultFirst 命令是否会将与该实体关联的其他实体的所有数据加载到内存中?

【问题讨论】:

这取决于您使用的 O/RM 模式。 This might help you 【参考方案1】:

看这里

http://www.entityframeworktutorial.net/EntityFramework4.3/lazy-loading-with-dbcontext.aspx

实体的默认行为是延迟加载,因此在您请求数据之前它不会加载数据。

【讨论】:

再想一想,你问了内存,所以你对性能很好奇,我认为对于大 db 最好关闭它,我没有检查差异但想象一下情况.您正在遍历数千条记录,并从引用的选项卡中检查一个值。所以延迟加载会发送数千条 sql 来获取引用的数据。每个循环一个。当您从上下文中获取数据时,您可以手动加载它,我敢打赌它会要求数据一次。如果我错了,请写出来。

以上是关于实体框架查询——加载数据优化的主要内容,如果未能解决你的问题,请参考以下文章

优化实体框架中生成的sql查询?

优化实体框架查询 - 超时已过期

使用 DTO 在实体框架中延迟加载

实体框架急切加载不返回数据,延迟加载有

Hibernate框架学习——查询优化

优化实体框架生成的 SQL Server 执行计划