c# - 使用 Lambda 表达式堆叠 where 条件
问题描述
我们通常在表达式中添加多个条件,用( )Where
分隔。&&
||
假设,如果我堆叠多个 where 条件,性能会有什么不同吗?
例如:
这条线是
dbContext.Students.Where(s=> s.Section = 5 && s.Marks >50).ToList();
如同
dbContext.Students.Where(s=>s.Section = 5).Where(s=>s.Marks > 50).ToList();
注意:上面的行是可能的,因为Where
返回 IQueryable 又具有Where
.
解决方案
您的语句到达数据库的时间是.ToList()
被调用的时间。因此,您在此之前所做的不会在实践中产生太大差异。
但是,从纯数学性能的角度来看,这些背后的翻译过程应该存在一些差异。正如@sujith karivelil 所建议的那样,可以通过实验或深入阅读来理解这一点。
推荐阅读
- python - 知道这些线条的角度,在质量很差的图像上找到线条的最佳方法是什么?
- redux - 你如何在 nextjs > 10 中使用 redux 工具包
- javascript - 与数据库javascript同步的问题
- node.js - 一个驱动器 API 404(未找到)
- python - 通过使用 python 跳过空白单元格来读取包含 url 的列/列表
- r - Windows 和 Linux 上 R markdown 的 html 输出大小差异很大
- git - GitAhead 不断询问用户名和密码
- nuxt.js - Nuxt SSR 设置导致 Tailwind 媒体查询崩溃
- python - 在python的文本文件中退格一个字符串
- reactjs - reactjs:提供到公共文件夹的文件在生产构建中解析为 404 错误,但在开发中使用 npm start