2011-12-16 80 views
2

我有一個數據庫表下面的模式獲取下一行:LINQ查詢 - 匹配參數

id 
screenshot 
language 
projects_ID 

我需要寫一個LINQ查詢,即,給定一個「身份證」, 'projects_ID'和'language'將返回具有匹配'projects_ID'和'語言'的下一行的'id'。

在英語中,我的查詢將是:

選擇當前的「身份證」,其中 「projects_ID」 ==當前的「projects_ID」和語言==目前的語言之後,從截圖下一個「身份證」 '

這是可能通過LINQ來做到這一點嗎?

謝謝。

回答

3

聽起來像是你可能想:

var next = table.Where(item => item.id > lastId && 
           item.projects_ID == projects_ID && 
           item.language == language) 
       .OrderBy(item => item.id) 
       .FirstOrDefault(); 

或者作爲查詢表達式:

var next = (from item in table 
      where item.id > lastId && 
        item.projects_ID == projects_ID && 
        item.language == language 
      orderby item.id 
      select item).FirstOrDefault(); 

結果將是null如果沒有匹配(例如,如果你已經看最後的ID)。這是假設「下一個」您的意思是「匹配的項目與最低的ID大於當前」。

+0

感謝喬恩 - 現在就試試這個。 – 2011-12-16 11:17:54