查询实体 select、内连接和计数

Query entity select, inner join and count

我想翻译此 SQL 查询:

SELECT FirstName,LastName, WaiterId, Count(*) AS compte 
FROM Waiter
INNER JOIN Client on Waiter.Id = Client.WaiterId
GROUP BY WaiterId,lastname, firstname 
ORDER BY compte DESC;

在 entity framework.

我试过这样的事情:

           var query = (from w in db.Waiter
                     join c in db.Client on w.Id equals c.WaiterId
                     group c by c.WaiterId into g
                     //orderby 
                     select new
                     {
                         WaiterId = g.Key,
                         count = g.Count()
                     });

但是我的 select 不工作。我不能 select FirstName 和 LastName,我什至不知道我的计数是否正确。

您需要包含分组依据中的所有属性。

var query = (from w in db.Waiter
             join c in db.Client on w.Id equals c.WaiterId
             group c by new { c.FirstName, c.LastName, c.WaiterId} into g
             orderby g.Count() descending
             select new
             {
                  FirstName = g.Key.FirstName,
                  LastName  = g.Key.LastName,
                  WaiterId  = g.Key.WaiterId,
                  count     = g.Count()
              });