Linq To SQl 最大值

Linq To SQl Max

我有一个包含 3 列的简单 table

Id, Version, RecId.
 1,       1,    50
 1,       2,    51
 1,       3,    52
 2,       1,    53
 2,       2,    54
 3,       1,    55

我想创建一个 LINQ to SQL 语句 returning id 和最高版本。

所以在这个例子中我的 LINQ 语句应该 return。 1,3 2,2 3,1

您可以使用 GroupByMax:

var query = db.TableName.GroupBy(x => x.Id)
    .Select(g => new{ Id = g.Key, MaxVersion = g.Max(x => x.Version) });

当然你也可以创建一个 poco class 的集合来代替这个匿名类型。或者你可以在 foreach:

中循环
foreach(var x in query)
{
    int id = x.Id;
    int maxVersion = x.MaxVersion;
}