2015-04-16 265 views
2

我正在學習LINQ to SQL。我想寫下面這樣的LINQ to SQL查詢:LINQ TO SQL子查詢

SELECT TOP 1 * From 
(select Top 2 * from Data ORDER BY ID DESC)      
ORDER BY ID 

根據我的理解它是寫這樣的事情;

GridView1.DataSource = from (from data in dbCon.Data ORDER BY data.ID DESC 
          select Top 2 *)ORDER BY data.ID 
          select TOP 1 * ; 

但它是不正確的。任何人都可以告訴我正確的語法嗎?和鏈接,可以幫助我學習LINQ TO SQL用於編寫子查詢的語法?

+0

你只是用來'SQL syntax',你沒辦法接近。更好地閱讀MSDN的文檔,並嘗試從這裏的LINQ示例:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b –

+0

我試圖寫就像你會在LINQ中寫一個簡單的選擇查詢。 – Nuke

+0

說例如我沒有任何ORDER BY子句。外部和內部查詢中的簡單選擇語句。什麼將是語法呢? – Nuke

回答

3

這應該爲你工作: -

var result = (from x in 
       ((from data in db.DATA orderby data.ID descending select data).Take(2)) 
       orderby x.ID 
       select x).FirstOrDefault(); 
0

試試這個:

var query = (from x in db.Data 
    select x).OrderByDescending(x=> x.Id).Take(2); 




    var query2 = (from y in query 
    SELECT y).OrderByDescending(y=> y.Id).Take(1); 
+0

您正在使用lamda表達式。我想要一個類似於表達式的sql查詢 – Nuke

+0

如果你想要SQL查詢,我會建議你在我下面的答案。 – user3410846