2017-05-26 27 views
0

我已经创建了一个SQL查询,如下所示:转换SQL内部联接,GROUP BY和秩序LINQ

SELECT s.FullName, s.[Id], COUNT(t.[User]) AS Records 
FROM dbo.AspNetUsers s INNER JOIN dbo.PBBuilds t 
ON s.Id = t.[User] 
GROUP BY t.[User], s.[FullName], s.[Id] 
ORDER BY COUNT(t.[User]) DESC 

我试图将其转换为LINQ查询,这是多远我有:

Dim results = From H In context.Users 
      Join C In context.PBBuilds On H.Id Equals C.User 
      Group By C.User Into 

任何人都可以请指教。

回答

1

尝试这个查询 - (修改相应虽然)

var results = From U In context.AspNetUsers 
     Join P In context.PBBuilds On U.Id Equals P.User 
     Group By new { P.User, U.FullName } Into g 
     Orderby COUNT(P.User) Descending 
     select new { 
     FullName = U.FullName, 
     ID = U.Id, 
     Records = COUNT(P.User) 
     }; 
+0

错误LINQ查询 –

+0

如何用P和U –

+0

选择值ca't组用于克对象 –

0

try代码

var results = From U In context.AspNetUsers 
    Join P In context.PBBuilds On U.Id Equals P.User 
    Group new {U,P} By new { P.User, U.FullName } Into g  
    select new { 
    FullName = g.FirstOrDefault().U.FullName, 
    ID = g.FirstOrDefault().U.Id, 
    Records = g.Count() 
    }).OrderByDescending(c=>c.Records).ToList();