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了,我用了之后才明白,然后做了一个小项目,之后就放弃使用了。
------解决方案--------------------
//按照回复表的数量来对帖子表排序
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;