LINQを使用してクエリを実行するSQL Serverに格納されたテーブルがあります。テーブルの漠然とした説明:各キーの最大値を持つ行を検索
ID1 | ID2 | SomeData
-----------------------------
1 | 1 | 'Moo'
1 | 2 | 'Meow'
1 | 3 | 'Woof'
1 | 4 | 'Cheap'
2 | 1 | 'Quack'
2 | 2 | 'Grrrrr'
2 | 3 | 'Wan wan'
私はID2
がID1
例あたりの最大値が結果希望する行にしか興味午前:
1 | 4 | 'Cheap'
2 | 3 | 'Wan wan'
を私は、このSQLコードが出ています
SELECT *
FROM SomeTable a
INNER JOIN
(
SELECT ID1, MAX(ID2) as SomeName
FROM SomeTable
GROUP BY ID1
) as b
ON a.ID1 = b.ID1 and a.ID2 = b.SomeName
LINQで実装する場合、サブクエリも必要ですか?つまり、データベースにクエリを実行し、変数を '内部クエリ'の結果でロードし、同じテーブルをクエリしますが、 '内部クエリ'の値と比較しますか?私はこれをしばらくのぞかせば、結局それを手に入れることができますが、おそらくLINQでこれをやり遂げるための素晴らしい方法があるような気がします。
希望の答えは、拡張メソッドの構文を利用します。
ボーナス:標準のLINQシンタックスに拡張メソッド構文コンバータがありますか?どのツールを使用してLINQステートメントを実行していますか? LINQクエリを使用してC#(ASP.NET MVC)を再生する必要があるのは少し面倒です。
LinqPadはLINQ文で遊ぶのに最適です! http://www.linqpad.net/(一般的にC#コードでも遊んでいます) – driis
[** LINQPad **](http://www.linqpad.net/)のコピーを入手してください。 – mellamokb