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

LINQ TO ENTITY 多表查询解决方法

2013-07-01 
LINQ TO ENTITY 多表查询发到LINQ组没人 擦 发这看看表一 发帖表 groupPostsID TITLE CONTENT1AAAAAA2BBBB

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组没人 擦 发这看看
 

作为"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;

热点排行