3

私は Entity Framework を初めて使用するので、単純な SQL ステートメントを LINQ に変換する際に多くの問題が発生しています。次の例は、私が多くのことをしなければならないことですが、解決策を見つけることができないようです...

SQL ステートメント:

SELECT * 
  FROM MyTable Table1
 WHERE Table1.Column1 = 1
   AND Table1.Column2 = 2
   AND Table1.SequenceNr = (SELECT MAX(Table2.SequenceNr) 
            FROM MyTable Table2
                  WHERE Table2.Column1 = 1
             AND Table2.Column2 = 2)

==> リンクする3つの重要な列を含むテーブル(私のものではありません:-))があります:2つの数字とシーケンス番号(何らかの履歴を保持するため)。==> 最も高いシーケンス番号 (「最後のレコード」) を持つレコードが主に必要であり、上記のクエリで解決します。

しかし、Linq (VB) でこれを行うにはどうすればよいでしょうか? 私はすでにこのようなものを持っています:

Dim blah = (From oTmp In oDB.MyTable
           Where oTmp.Column1 = 1 And _
                 oTmp.Column2 = 2 And _
                 oTmp.SequenceNr = oDB.MyTable.Max(Function(x) x.SequenceNr)
          Select oTmp).ToList

誰でもアイデアはありますか?:)

グリッツ、ジム

4

1 に答える 1

1

Where()その内部クエリへの呼び出しを追加するだけです。

oTmp.SequenceNr = oDB.MyTable.Where(Function(x) x.Column1 = 1 And x.Column2 =2)
                             .Max(Function(x) x.SequenceNr)
于 2012-11-13T14:23:30.530 に答える