gpt4 book ai didi

c# - 如何在 LINQ to Entities 中获取最大时间戳和 groupby 另一个字段

转载 作者:行者123 更新时间:2023-11-30 22:42:38 24 4
gpt4 key购买 nike

我有一个包含以下字段的实体GUID 任务 ID,GUID 子任务 ID,DateTime 时间戳

TaskId 可以与 SubTaskId 一对多。它几乎就像一个复合键。

我想写一个或多个表达式,在每个 TaskId 中产生最新的结果即

TaskId SubTaskId 时间戳
1 A 2010-11-22 15:48:49.727
1 B 2010-11-22 16:24:51.117
2 C 2010-11-15 11:49:05.717
2 D 2010-11-15 14:02:11.467

将导致序列仅包含:
TaskId SubTaskId 时间戳
1 B 2010-11-22 16:24:51.117
2 D 2010-11-15 14:02:11.467

此表达式非常适合显示所有 TaskId 和时间戳

var q1 = 
from req in myEntity
orderby req.TaskId
select new
{
req.TaskId,
req.SubTaskId,
req.Timestamp
};

但我只想显示每个 TaskId 的最新时间戳。我为表达式添加最大值的所有尝试都失败了。帖子 (http://stackoverflow.com/questions/2034800/how-do-you-find-the-group-wise-max-in-linq) 看起来很接近,但我无法将其转化为有效的东西。可能需要一个 foreach

最佳答案

这个怎么样?

var q1 = 
from req in myEntity
group req by req.TaskId into g
let topReq = g.OrderByDescending(r => r.Timestamp).FirstOrDefault()
select new
{
topReq.TaskId,
topReq.SubTaskId,
topReq.Timestamp
};

关于c# - 如何在 LINQ to Entities 中获取最大时间戳和 groupby 另一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4319516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com