2016-08-22 124 views
2

我是新來的LINQ,如何將下面的SQL查詢轉換爲LINQ如何從SQL查詢轉換爲LINQ

SELECT WorkingHoursID 
    FROM WorkingHours 
except 
    ( 
     SELECT WorkingHoursID 
     FROM Schedule 
     WHERE Date = '2016-08-25' 
    GROUP BY WorkingHoursID    
     HAVING COUNT(WorkingHoursID) >= 8 
    ) 

回答

2

使用Except方法,你可以做這樣的事情:

var schedules = (from s in DBCon.Schedule 
       where s.Date == new DateTime(2016, 8, 25) 
       group s by s.WorkingHoursID into g 
       where g.Count() >= 8 
       select g.Key).ToList(); 

var result = DBCon.WorkingHours.Select(item => item.WorkingHoursID).Except(schedules); 
+0

@jody - 這是否幫助您解決問題? –

+0

您是否通過將列表傳遞給Queryable.Except來編寫代碼? – qxg

+0

是的,感謝您花時間回答我的問題,我剛剛更改了以下var result =(從DBCon.WorkingHours中的s選擇s.WorkingHoursID).Except(datalist).ToList(); – jody