首页 新闻 会员 周边

linq 左连接并group by,请问该怎么写

0
悬赏园豆:20 [已解决问题] 解决于 2014-02-12 09:31
from g in db.Group
join u in db.User on g.code equals u.code into temp
from result in temp.DefaultIfEmpty()

select new Group
{
GroupName = g.groupName,
GroupLeader = result.name + "|" + result.code,
LeaderCode = result.code,
GroupId = g.groupId,
MemberCount=?
};

group是小组,user是用户表。group表里有code表示组长编号。user表里有groupid外键表示用户小组。

我想提取小组信息,现在还有一个MemberCount字段表示小组人数,请问该如何获取?

一羽赐命的主页 一羽赐命 | 初学一级 | 园豆:11
提问于:2014-02-11 18:06
< >
分享
最佳答案
0

用下面的代码试试,不用那么复杂

var groups = from g in db.Group
             select new { g, g.User.Count, g.User2 };
foreach (var item in groups)
{
    var group = item.g;
    group.MemberCount = item.Count;
}

其中Group和User有两个关联,一个是通过groupid(上面的g.User),另一个是code(上面的g.User2)

收获园豆:20
诶碧司 | 小虾三级 |园豆:1912 | 2014-02-11 21:07

额..不好意思,我说错了。当初linq更新带外键表老是报错,所以把关联取消了,所以没有导航属性。请问该怎么写?

一羽赐命 | 园豆:11 (初学一级) | 2014-02-12 08:25

你的代码给了我提示,已经解决了,谢谢。

一羽赐命 | 园豆:11 (初学一级) | 2014-02-12 09:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册