【问题标题】:Selecting max revision with Linq statement使用 Linq 语句选择最大修订
【发布时间】:2013-04-11 16:11:22
【问题描述】:

我查看了其他一些答案,但似乎没有一个正是我正在寻找的答案,我无法比目前更深入地解决这些问题。

我有一个单独的表,其中包含我们所有的文档和修订。

我目前有这个 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 如果它尚未被批准则为空,因此最大修订或任何尚未批准的项目。

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    如果这是针对数据库进行查询,您可能需要:

    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)
    

    【讨论】:

      猜你喜欢
      • 2012-01-12
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 2017-08-03
      相关资源
      最近更新 更多