读书人

linq多表分组查询解决思路

发布时间: 2012-12-31 11:57:51 作者: rapoo

linq多表分组查询
a表有数据bid与b表id相关,要按照a的字段name分组,b的字段time排序,只查询b全部字段,要求只取每个组的time最大的数据
[解决办法]

var query= from x in db.a
join y in db.b
on x.bid equals b.id
group x by x.name into g
select g.OrderByDescending(z=z.time).First();

[解决办法]
引用:
引用:
a表有数据bid与b表id相关,要按照a的字段name分组,b的字段time排序,只查询b全部字段,要求只取每个组的time最大的数据

这个time字段是b表的,这是关键的所在。您看看怎么实现,这里我要返回的是a表。说白了就是按照a的time 排序但是要按照b的name来分组,而且只要最大值

var result = from u in db.TableB
orderby u.time descending
let n = db.TableA.Select(c => c.name)
group u by n into g
select g.FirstOrDefault();

读书人网 >.NET

热点推荐