2016-11-14 191 views
1

我需要一個非常簡單的查詢在我的應用程序,但我不知道如何將它轉換成Linq到SQL,因爲我需要它在一個asp.net應用程序。從T-Sql到Linq到SQL

由於內部程序,它是一個lambda表達式是壞的。

在T-SQL,它看起來像這樣:

select top 1 [datum] 
from Test 
where Datum <> (select max (Datum) from Test) 

對不起,愚蠢的問題提前。

回答

1

可以使用Max功能內嵌在查詢

var result = Test 
    .Where(t => t.Datum != Test.Max(t1 => t1.Datum)) 
    .Select(t => t.Datum) 
    .FirstOrDefault(); 
+1

您可以將表達式從'.Where()移動到'.FirstOrDefault()'並移除'.Where()' –

+0

是的,但這只是語法糖和個人偏好,它不會影響查詢本身 – jtate

0

要使用lambda表達式應用這樣的查詢首先你需要獲取從表中測試的所有記錄,並且您得到可以用來獲取列表輸出你想要的。 從數據庫中獲取列表後,示例查詢將如下所示。

變種測試=測試 .OrderByDescending(E => e.datum) .Skip(1) 。首先();