我试图把这种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