2015-09-29 142 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();