2015-09-29 86 views
0

我有以下查询工作正常:LINQ的子查询与GROUP BY

var results = (from p in db.globalMap 
           where p.LId == 1 
           group p by p.GroupId into g 
           select new 
           { 
            GroupId = g.Key, 
            client = g.Select(k => k.ClientId).FirstOrDefault(),          
            cnt = g.Count() 
           }).ToList(); 

我喜欢做的是查询另一个表来得到一个基于客户端Id的CLIENTNAME。

我试过类似的东西,但得到红色的sw lines纹。想知道如何能像我想要的那样做一个子查询。

 var results = (from p in db.globalMap 
           where p.LId == 1 
           group p by p.GroupId into g 
           select new 
           { 
            GroupId = g.Key, 
            clientName = (select x in db.client where x.clientId = clientId select x.clientName).FirstOrDefault(),          
            cnt = g.Count() 
           }).ToList(); 
+0

你得到一个机会,看看我的答案吗?你的问题解决了吗? –

回答

0

你可以做到这一点,你相若方式是怎么做的第一个: -

var results = (from p in db.globalMap 
       where p.LId == 1 
       group p by p.GroupId into g 
       select new 
       { 
        GroupId = g.Key, 
        clientName = db.client.Where(x => x.clientId == clientId) 
              .Select(x => x.clientName).FirstOrDefault(), 
        cnt = g.Count() 
       }).ToList();