我正在尝试使用 LINQ 从状态历史记录中获取记录的最新状态。我的订单出现问题,或者可能我完全偏离了目标。
My Code
Dim LatestStatusTable= (From RecordHistoryTable In db.RecordHistory) _
.GroupBy(Function(i) i.Status).[Select](Function(i) i.First())
示例数据
Data
ID Timestamp Status
251 2017-07-19 11:01:15.577 2
250 2017-07-14 16:15:38.543 2
249 2017-07-13 13:31:13.010 2
249 2017-07-14 04:16:08.307 1
249 2017-07-14 05:45:38.437 2
249 2017-07-14 08:00:42.253 1
249 2017-07-14 08:30:02.380 2
248 2017-07-11 15:30:28.223 2
248 2017-07-11 18:31:11.857 1
248 2017-07-11 18:49:08.510 2
Desired Output
ID Timestamp Status
251 2017-07-19 11:01:15.577 2
250 2017-07-14 16:15:38.543 2
249 2017-07-14 08:30:02.380 2
248 2017-07-11 18:49:08.510 2
有人可以教育我并指出我正确的方向吗?
GroupBy ID
然后在选择时,你想要OrderByDescending
on Timestamp
,然后取First
在每个组中。
Dim LatestStatusTable = (From RecordHistoryTable In db.RecordHistory) _
.GroupBy(Function(i) i.ID) _
.[Select](Function(g) g.OrderByDescending(Function(x) x.Timestamp).First())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)