我試圖把這種SQL集團By列值:在LINQ
SELECT IDNum, Max(Convert(varchar(20), (TimeOut - TimeIn), 108))
FROM IO_Times Group by IDNum
order by Max(Convert(varchar(20), (TimeOut - TimeIn), 108)) desc";
進入LINQ在C#。以上返回與每個唯一IDNum(每個IDNum有多個TimeOut-TimeIn值)相對應的(TimeOut-TimeIn)的最大值的列表。
這是我現在想:
from IO_Time in db.IO_Times
orderby SqlMethods.DateDiffMinute(IO_Time.TimeIn, IO_Time.TimeOut) descending
group IO_Time by IO_Time.IDNum into list
select new
{
ID = list.Key,
Time = list
});
這將返回正確的順序正確的ID,但「清單」包含在數據庫條目中的一切(這是有道理的)。我也嘗試了IDNum和Time組,但是我得到了唯一的時間條目和多個ID返回。
我可以做一個foreach循環,並手動排序它,但我真的寧願不這樣做。
有什麼建議嗎?
完美!我應該更頻繁地使用lambda操作。 – 2010-06-25 17:35:33
非常好。如果我想加入另一張名稱與ID一致的表,該怎麼辦?我只是簡單地加入並希望名稱能夠在intellisense中顯示,但它不起作用。 – 2010-06-25 17:57:36