我有以下结果集。如何获取符合条件的最新历史记录:在linq中状态='A'?对实体ID进行分组,记录将按历史记录ID
降序排序History ID Entity ID Status
2969 6957 I
2968 6957 A
2967 6957 A
2303 6957 I
1000 6958 A
55 6959 A
50 6959 I
45 6960 I
40 6960 A
结果应该给我
History ID Entity ID Status
1000 6958 A
55 6959 A
答案 0 :(得分:0)
首先按实体分组,获取每个组的“最新”记录。最后检查状态为A
:
histories.GroupBy(h => h.EntityId)
.Select(g => g.OrderByDescending(h => h.HistoryID)
.First())
.Where(h => h.Status == "A");