C# LINQ to SQL-选择最高版本号的列表

C# LINQ to SQL-选择最高版本号的列表,c#,vb.net,linq-to-sql,C#,Vb.net,Linq To Sql,我正在尝试编写一些Linq to SQL,它将返回一个包含BaseQuestionID单个实例的行列表,但我希望该行具有最高版本,因此,从以下数据表: Id CreatedDate Version BaseQuestionID 2 2009-10-07 13:47:27.687 1 2 3 2009-10-07 13:49:35.010 1 3 4 2009-10-09 16:03:45.97

我正在尝试编写一些Linq to SQL,它将返回一个包含BaseQuestionID单个实例的行列表,但我希望该行具有最高版本,因此,从以下数据表:

Id  CreatedDate                 Version    BaseQuestionID
 2  2009-10-07 13:47:27.687         1      2
 3  2009-10-07 13:49:35.010         1      3
 4  2009-10-09 16:03:45.973         1      5
 5  2009-10-16 16:01:33.603         2      5
 6  2009-10-16 16:16:22.680         1      6
 7  2009-10-16 16:16:53.807         2      6
 8  2009-10-16 16:41:31.180         3      6
 9  2009-10-19 08:06:23.210         4      6
我想返回:

Id  CreatedDate                 Version    BaseQuestionID
 2  2009-10-07 13:47:27.687         1      2
 3  2009-10-07 13:49:35.010         1      3
 5  2009-10-16 16:01:33.603         2      5
 9  2009-10-19 08:06:23.210         4      6
我尝试过各种各样的事情,但还没有成功。我在vb.net中工作,但我很高兴尝试从c#翻译,如果你知道的话。。。任何指针都将不胜感激。

那么(C#)呢:

因此,基本上,您可以根据问题ID形成一组行:

Id  CreatedDate                 Version    BaseQuestionID
 2  2009-10-07 13:47:27.687             1          2

 3  2009-10-07 13:49:35.010             1          3

 4  2009-10-09 16:03:45.973             1          5
 5  2009-10-16 16:01:33.603             2          5

 6  2009-10-16 16:16:22.680             1          6
 7  2009-10-16 16:16:53.807             2          6
 8  2009-10-16 16:41:31.180             3          6
 9  2009-10-19 08:06:23.210             4          6
(每个块是一个“分组行”),然后按版本降序排列每个组,只取第一行:

Id  CreatedDate                 Version    BaseQuestionID
 2  2009-10-07 13:47:27.687             1          2
 3  2009-10-07 13:49:35.010             1          3
 5  2009-10-16 16:01:33.603             2          5
 9  2009-10-19 08:06:23.210             4          6
我希望它能被合理地翻译成SQL,但我不想肯定地说:)

那么(C#)呢:

因此,基本上,您可以根据问题ID形成一组行:

Id  CreatedDate                 Version    BaseQuestionID
 2  2009-10-07 13:47:27.687             1          2

 3  2009-10-07 13:49:35.010             1          3

 4  2009-10-09 16:03:45.973             1          5
 5  2009-10-16 16:01:33.603             2          5

 6  2009-10-16 16:16:22.680             1          6
 7  2009-10-16 16:16:53.807             2          6
 8  2009-10-16 16:41:31.180             3          6
 9  2009-10-19 08:06:23.210             4          6
(每个块是一个“分组行”),然后按版本降序排列每个组,只取第一行:

Id  CreatedDate                 Version    BaseQuestionID
 2  2009-10-07 13:47:27.687             1          2
 3  2009-10-07 13:49:35.010             1          3
 5  2009-10-16 16:01:33.603             2          5
 9  2009-10-19 08:06:23.210             4          6
我希望这能被合理地翻译成SQL,但我不想肯定地说:)