首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

LINQ TO ENTITY 多表连接查询

2013-07-09 
LINQ TO ENTITY 多表连接查询 求助表一 发帖表 groupPostsID TITLE CONTENT1AAAAAA2BBBBBB3CCCCCC4DDDDDD

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;

热点排行