我有数据表(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 + Rev是唯一的 注意:表中还有其他字段需要获取结果。理想的是获得一个iqueryable(Doc是模型类),我想到在内部查询中选择ID,然后使用它来获取docs的iqueryable。
先谢谢
答案 0 :(得分:1)
试试这个:
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
是IQueryable。