【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

LINQ-to-Entities 确实是依赖于之前的查询来返回不同的结果吗?

  • 2008-12-11
  • 本文字数:591 字

    阅读完需:约 2 分钟

这种情况实际上是对编码部分的误解。他们编写运行的第二部分查询(var order 部分),实际上是一个 LINQ to Object 查询,而非 LINQ to Entities (或 LINQ to SQL) 查询。该 LINQ to Object 查询是查询之前由第一部分查询(var alice 部分)导入到内存的数据,。

现在产生不同结果的原因,就是 LINQ to SQL 支持延迟加载,而 Entity Framework 第一个版本并不支持。所以如果你查看第一部分查询,该代码仅把 Customer 实体引入到内存(在 LINQ to SQL 和 LINQ to Entities 中的确如此)。然而,在第二部分查询(Orders)中,代码尝试访问相关的 Orders 实体。现在延迟加载接着第二次访问数据库来获取这些信息,然而在 Entity Framework 中的显式加载意味着,他要对数据库“不可思议地”进行额外访问。由于 Orders 不在内存中,在你对 LINQ to Entities 查询结果执行 LINQ to Objects 查询的时候,Orders 则不可用。然而,在 foreach 循环(代码特别调用了 data.Orders- 访问该上下文并在数据库中查询所有 Orders)之后,该 Orders 就在内存中,因此 LINQ to Objects 就可基于它们来查询。

也就是说,我们让你能够在 Entity Framework 的第二版中开启延迟加载,然而,它在默认情况下仍将关闭。理由是为了确保开发者不会意外地遇上性能问题的情况,即数据库被访问 N+1 次,这可以使用延迟加载来减缓,而无需开发人员必须明确地告诉该框架,即他们无需担忧延迟加载的性能问题。

2008-12-11 02:39784
用户头像

发布了 87 篇内容, 共 20.1 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营 - 第十一周作业

一个节点

极客大学架构师训练营

架构师训练营第 1 期第11周作业

业哥

架构师训练营第二周作业

J

极客大学架构师训练营

那些年,支撑尾款人们熬夜的AI

脑极体

喝完可乐桶后程序员回归本源,开源Spring基础内容

小Q

Java spring 学习 源码 面试

整天都在讨论使用SpringBoot,可你居然连缓存都不清楚

小Q

Java 缓存 学习 面试 springboot

架构师养成第二课

万有引力

Sharding-Sphere Proxy 分库分表 简单示例

Java MySQL 分库分表 ShardingSphere-Proxy

我膨胀了,测试必要商城小程序,用了3种方式!:)

清菡软件测试

App

Mysql Docker 主从配置

MySQL Docker 主从读写

第二周 框架设计 学习总结

胡云飞

极客大学架构师训练营 框架设计

框架设计作业

cc

极客时间架构师培训 1 期 - 第 11 周作业

Kaven

月薪8k和月薪38K的程序员差距在哪里?学习Linux C/C++ 这些你就知道了

ShenDu_Linux

c++ Linux 程序员 Linux服务器开发 C、C++程序员

阿里开源十亿级并发设计手册:数据库+缓存+消息队列+分布式+维护

Java架构追梦

Java 阿里巴巴 编程 架构 亿级流量

秒懂DHCP是什么

架构师训练营 - 第十一周总结

一个节点

极客大学架构师训练营

架构师训练营第11周总结

吴传禹

极客大学架构师训练营

离开

成周

架构师训练营第二周学习心得

cc

架构师训练营第七周作业

丁乐洪

《Linux就该这么学》PDF版免费下载

计算机与AI

Linux

ShardingSphere Raw JDBC 主从示例

Java JDBC ShardingSphere

从华为看VUCA时代如何让组织不断乘风破浪?

Alan

华为 战略思考 组织发展 组织活力

ShardingSphere Proxy 主从读写 入门使用

Java 主从读写 ShardingSphere

架构师训练营 -week11-总结

大刘

极客大学架构师训练营

性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

落朽

架构师训练营第11周课后作业

吴传禹

极客大学架构师训练营

极客时间架构师训练营 1 期 - 第 11 周总结

Kaven

LeetCode题解:874. 模拟行走机器人,模拟情境,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

5 千字长文+ 30 张图解 | 陪你手撕 STL 空间配置器源码

herongwei

c++ 源码 后端 内存 stl

LINQ-to-Entities确实是依赖于之前的查询来返回不同的结果吗?_.NET_Jonathan Allen_InfoQ精选文章