我已经查看了其他一些答案,似乎没有一个正是我正在寻找的东西,而且我无法比现在更进一步解决这些问题。
我有一张包含所有文件和修订的表格。
我目前有这个Linq:
from v in IPACS_Versions
where v.DateApproved == null
group v by v.DocumentID into g
select g.Max(t => t.Revision)
这正确地为我提供了需要修改的项目,但是我需要选择所有字段,目前它只选择Revision字段。我对Linq很新,我怎么能改变它?
如果上面的代码完全错误,请提供详细信息。
我需要为每个文档的最大修订选择整行。主键是documentId,每个documentId可以有很多不同的版本,我需要最新版本。另一个标准是,如果尚未批准,则字段dateApproved为null,因此最大修订版或任何尚未批准的项目。
答案 0 :(得分:4)
如果这是查询数据库,您可能需要:
from v in IPACS_Versions
where v.DateApproved == null
group v by v.DocumentID into g
select g.OrderByDescending(t => t.Revision).First()
如果它在本地运行(LINQ to Objects),您可以使用MaxBy
的MoreLINQ方法:
from v in IPACS_Versions
where v.DateApproved == null
group v by v.DocumentID into g
select g.MaxBy(t => t.Revision)