【发布时间】:2010-08-13 02:37:06
【问题描述】:
我的数据库中有一个代表软件版本的表;架构的相关列如下:
ProductID int
PlatformID tinyint
Date datetime
全部不为空,前两列还有一个唯一键。
我想构建一个查询(使用 LINQ),它返回每个平台 (PlatformID) 的最新版本(例如日期),但每个平台不超过一条记录 (PlatformID),并且按日期降序排列。
我该怎么做?
编辑:这是我使用的解决方案:
var product = ...;
var latestReleases = product.Releases
.GroupBy(p => p.PlatformID)
.Select(group => group.OrderByDescending(p => p.Date).FirstOrDefault())
.OrderByDescending(release => release.Date)
为了清楚起见...
foreach (var release in latestReleases)
{
Console.WriteLine("The latest release of MyProduct for {0} is {1}.",
release.PlatformID, // of course this would be a string in real code ;)
release.Version);
}
【问题讨论】:
标签: c# sql sql-server linq