簡體   English   中英

這兩個搜索語句實體框架之間是否存在差異

[英]Is there a difference between these two Search Statements Entity Framework

我有一個位置,我需要從表中獲取前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,那么第一行是否iFlag

第一個版本:帶我15項,過濾它們。

第二個版本:帶我所有項目,過濾它們,只采取15個過濾項目。

不,這不一樣。

是的,他們會“工作”,但不會這樣做。

如果前15行的iFlag標記為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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM