读书人

LINQ TO ENTITY 多表连接查询

发布时间: 2013-07-09 09:50:48 作者: rapoo

LINQ TO ENTITY 多表连接查询 求助
表一 发帖表 groupPosts
ID TITLE CONTENT
1 AAA AAA
2 BBB BBB
3 CCC CCC
4 DDD DDD


表二 回复表 Comments
ID TargetID CONTENT ADDTIME
1 1 AAA 2013-6-28 11:00
2 1 AAA 2013-6-28 10:00
3 2 BBB 2013-6-28 14:00
4 3 CCC 2013-6-28 10:00
5 1 AAA 2013-6-28 09:00
6 4 DDD 2013-6-28 12:00
7 3 CCC 2013-6-28 13:00


想按照回复表的数量来对 帖子表排序 请问该怎么查询
查询结果:
发帖表 groupPosts
ID TITLE CONTENT
1 AAA AAA
2 BBB BBB
3 CCC CCC
4 DDD DDD


按照ADDTIME 最新时间(1个帖子对应MAX ADDTIME就可以了)对 帖子表排序 又该怎么查询
查询结果:
发帖表 groupPosts
ID TITLE CONTENT
2 BBB BBB
3 CCC CCC
4 DDD DDD
1 AAA AAA

大牛指点下 谢谢 刚接触LINQ 不是太熟
3Q LINQ entity
[解决办法]
本帖最后由 q107770540 于 2013-06-28 11:03:17 编辑

//按照回复表的数量来对帖子表排序  


var query= from p in groupPosts
join c in Comments.GroupBy(x=>x.TargetID).Select(g=>new {TargetID=g.Key,num=g.Count()})
on p.TargetID equals c.TargetID into leftGroup
from c in leftGroup.DefaultIfEmpty()
orderby c.num descending
select p;


//按照ADDTIME 最新时间来对帖子表排序
var query= from p in groupPosts
join c in Comments.GroupBy(x=>x.TargetID).Select(g=>new {TargetID=g.Key,ADDTIME=g.Max(y=>y.ADDTIME)})
on p.TargetID equals c.TargetID into leftGroup
from c in leftGroup.DefaultIfEmpty()
orderby c.ADDTIME descending
select p;

读书人网 >.NET

热点推荐