2016-11-14 3 views
1

Мне нужен очень простой запрос в моем приложении, но я не могу понять, как его перевести в Linq-to-SQL, потому что он мне нужен в asp.net-приложении.От T-Sql до Linq-to-SQL

Это - лямбда-выражение из-за внутренних процедур.

В 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

Чтобы применить такой запрос с использованием лямбда-выражения сначала нужно получить все записи из теста таблицы и список, который вы получаете может быть использован, чтобы получить вы хотите. Пример запроса будет выглядеть следующим образом после извлечения списка из базы данных.

тест вар = Тесты .OrderByDescending (е => e.datum) Пропустите (1) .Первый();

Смежные вопросы