这两个搜索语句实体框架之间是否有区别
本文关键字:框架 实体 之间 是否 有区别 语句 搜索 两个 | 更新日期: 2023-09-27 18:36:36
我有一个位置,我需要从表中获取前 15 行,其中iFlag
列标记为 0。
所以我有这两个说法:
var t = dbContext.UnProcessedLogs.Take(15).Where(up => up.iFlag == 0).ToList();
var unProcessedlogs = dbContext.UnProcessedLogs.Where(up => up.iFlag == 0).Take(15).ToList();
这两种说法有什么区别?
如果前 15 行iFlag
标记为 1,第一个行是否有效
第一个将:
- 取前 15 行
UnProcessedLogs
- 然后过滤到那些有
iFlag == 0
的那些(显然可以小于15)
第二个将:
- 筛选所有
UnProcessedLogs
行,筛选出具有iFlag == 0
行 - 以其中的前 15 个为例
如果表有 30 行,其中每隔一行有 iFlag == 0
,中间的行有 iFlag == 1
,则:
- 第一个查询将返回 7-8 行(表中的前 15 行,选择带有
iFlag == 0
的行) - 第二个查询将返回所有 15 个
iFlag == 0
第一个版本:给我 15 个项目,过滤它们。
第二版:把所有项目都拿走,过滤它们,只拿15个过滤的项目。
不,不一样。
是的,他们会"工作",但不会做同样的事情。
如果前 15 行将 iFlag 标记为 1,第一个会起作用
吗
这将只返回一个空的结果集。
这不是错误,只是可能不是您想要的!