我是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
任何想法? :)
格尔茨, 吉姆
答案 0 :(得分:1)
您只需要对该内部查询添加Where()
次调用:
oTmp.SequenceNr = oDB.MyTable.Where(Function(x) x.Column1 = 1 And x.Column2 =2)
.Max(Function(x) x.SequenceNr)