0

我查看了其他一些答案,但似乎都不是我正在寻找的答案,而且我无法比现在更进一步地解决这些问题。

我有一张桌子,里面有我们所有的文件和修订。

我目前有这个 Linq:

from v in IPACS_Versions
where v.DateApproved == null
group v by v.DocumentID into g
select g.Max(t => t.Revision)

这正确地给了我需要修订的项目,但是我需要选择所有字段,目前它只选择了修订字段。我对 Linq 很陌生,我该如何更改?

更多细节,以防我上面的代码完全错误。

我需要为每个文档的最大修订选择整行。主键是documentId,每个documentId可以有很多不同的修订,我需要最近的一个。另一个标准是有一个字段 dateApproved 如果它尚未被批准则为空,因此最大修订或任何尚未批准的项目。

4

1 回答 1

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),您可以使用MoreLINQMaxBy的方法:

from v in IPACS_Versions
where v.DateApproved == null
group v by v.DocumentID into g
select g.MaxBy(t => t.Revision)
于 2013-04-11T16:13:02.833 回答