2016-11-14 15 views
1

私のアプリケーションでは非常に単純なクエリが必要ですが、asp.netアプリケーションで必要とするため、Linq-to-SQLに変換する方法を理解できません。T-SQLからLinq-to-SQL

内部プロシージャのためにラムダ式であることが必要です。事前に愚かな質問のため申し訳ありません

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

:それはこのようになりますT-SQLで

答えて

1

あなたは、テーブルのテストとあなたが得るために使用することができますリストからすべてのレコードをフェッチする必要がある最初のラムダ式を使用して、このようなクエリを適用するには、クエリ

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

'.Where()'から '.FirstOrDefault()'に式を移動して '.Where()'を削除することができます。 –

+0

はい、それは構文的な砂糖と個人の好みです。クエリ自体 – jtate

0

Max機能をインラインで使用することができますあなたが望む出力。 サンプルクエリは、データベースからリストをフェッチした後、次のようになります。

VARテスト= .OrderByDescending(E => e.datum)をテスト .SKIP(1) 1次回()。