2016-11-14 76 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) 。首先();