2013-10-24 38 views
0

我有一个situtation中,我需要从表所在的iFlag列标记0是否有这两个搜索声明实体框架

获得前15行所以我有这两个语句之间的差异:

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

回答

1

第一个将:

  1. 取的头15个的行UnProcessedLogs
  2. 然后用iFlag == 0过滤那些向下的那些(其可以是小于15显然)

第二一个会:

  1. 筛选所有的行UnProcessedLogs下降到那些iFlag == 0
  2. 利用这些

第15如果表中有30行,其中每隔一行有iFlag == 0和那些其间有iFlag == 1,则:

  1. 的第一个查询将返回7-8行(表中前15个,选择iFlag == 0
  2. 第二个查询将返回所有15个与iFlag == 0
1

第一个版本:以我15项,过滤他们。

第二个版本:带我的所有项目,滤波他们,只需要过滤的项目15个。

不,这是不一样的。

是的,他们将“工作”,但不会做。

请问,如果前15行具有IFLAG第一个工作标记为1

这只会返回一个空结果。

这是不是一个错误,它只是可能不是你想要的!