LINQ TO ENTITY 多表查询
发到LINQ组没人 擦 发这看看
表一 发帖表 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
3 CCC CCC
2 BBB BBB
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
[解决办法]
别使用LINQ了,我用了之后才明白,然后做了一个小项目,之后就放弃使用了。
------解决方案--------------------
作为"LINQ组"的版主,楼主你的第一句话深深的伤了哥的心。。。
刚刚在stackoverflow, 正和老外抢分抢的正high, CSDN很多帖子的提问质量让我很蛋疼
所以已经基本很少回复了
不过你的这个问题,我已经在LINQ组的帖子里回复了:
//按照回复表的数量来对帖子表排序
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;