EF查询帮助-分组和子查询
本文关键字:查询 -分 帮助 EF | 更新日期: 2023-09-27 17:59:03
我有数据表(DOCs,在我的上下文中是DBSet),其中包含以下数据
ID Code Rev
1 A1 1
2 A1 2
3 A1 3
4 A3 1
5 A2 1
6 A2 2
我需要为每个版本最高的代码选择有记录的记录。我的预期结果是
ID Code Rev
3 A1 3
6 A2 2
4 A3 1
ID列是表的PK,Code+Reve是唯一的
注意:表中还有其他字段,我需要获取这些字段才能得到结果。理想的情况是获得一个iquryable(Doc是模型类),我想在内部查询中选择ID,然后使用它来获得文档的iquryaable。
提前感谢
试试这个:
var res = from r in DOCs
where (from c in DOCs
group c by c.Code into g
select new {
localCode = g.Key,
localRev = g.Max(t => t.Rev)
}).Any(x => x.localCode == r.Code && x.localRev == r.Rev)
select r;
res
是可查询的。