我目前有这个样本数据表:
ID | Policy ID | History ID | Policy name
1 | 1 | 0 | Test
2 | 1 | 1 | Test
3 | 2 | 0 | Test1
4 | 2 | 1 | Test1
其中,我想按策略 ID 和历史 ID (MAX) 进行分组,所以我要保留的记录是 ID 的 2 和 4:
ID | Policy ID | History ID | Policy name
2 | 1 | 1 | Test
4 | 2 | 1 | Test1
我尝试在 LINQ 中执行此操作,并且每次都遇到相同的问题。我可以将我的实体分组,但总是将它们分组到一个我必须重新定义属性的组中,而不是让它们从我的 Policy 对象中保留下来。如:
var policies = _context.Policies.GroupBy(a => a.intPolicyId)
.Select(group => new {
PolicyID = group.Key,
HistoryID = group.Max(a => a.intHistoryID)
});
这只是带出一个对象列表,其中包含“策略 ID”和“历史 ID”。我想要从 Policies 对象返回的所有属性,而不必重新定义它们,因为该对象中有大约 50 多个属性。
我试过:
var policies = _context.Policies.GroupBy(a => a.intPolicyId)
.Select(group => new {
PolicyID = group.Key,
HistoryID = group.Max(a => a.intHistoryID)
PolicyObject = group;
});
但这会出错。
有任何想法吗?