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 回答