C# LINQ to SQL-选择最高版本号的列表
我正在尝试编写一些Linq to SQL,它将返回一个包含BaseQuestionID单个实例的行列表,但我希望该行具有最高版本,因此,从以下数据表: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
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,但我不想肯定地说:)