2017-04-15 26 views
0

所以,我一直在试图将下面的SQL查询转换为实体框架查询。我一直在寻找通过使用组的其他问题,但我不能让雷到以下同syntax.Here当工作SQL查询:如何将SQL查询转换为组合,聚合和连接到实体框架查询?

SELECT w.WorkstationID, WorkstationName, MinEmployeeCount, 
OptimalEmployeeCount, MAX(Quantity) AS NumOfEmployees 
FROM Workstation AS w 
JOIN WorkstationRecord AS r 
ON w.WorkstationID = r.WorkstationID 
GROUP BY w.WorkstationID, WorkstationName, MinEmployeeCount, 
OptimalEmployeeCount 

目前,我尝试了几种不同的EF查询(在查询语法):

Workstations = (from sta in context.Workstations 
          join rec in context.WorkstationRecords on sta.WorkstationID equals rec.WorkstationID 
          group sta by sta.WorkstationID into sta 
          select new ClientWorkstation() 
          { 
           WorkstationID = sta.WorkstationID, 
           WorkstationName = sta.WorkstationName, 
           MinEmployeeCount = sta.MinEmployeeCount, 
           OptimalEmployeeCount = sta.OptimalEmployeeCount, 
           NumOfEmployees = rec.Quantity, 
          }).ToList(); 

任何帮助表示赞赏。

回答

1

更改此:

group sta by sta.WorkstationID into sta 

group sta by new { sta.WorkstationID, sta.WorkstationName, sta.MinEmployeeCount, 
sta.OptimalEmployeeCount } into grp 
select new ClientWorkstation 
{ 
    // Are you sure you want Max and not Count? 
    NumOfEmployees = grp.Max(t => t.Quantity), 
    // other members... 
} 
相关问题