Я пытаюсь перевести это:
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 #.Вышеприведенный список возвращает список максимального значения (TimeOut-TimeIn), которое соответствует каждому уникальному IDNum (существует несколько значений TimeOut-TimeIn для каждого IDNum).
Вот что я пытаюсь сейчас:
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
});
Возвращает правильные идентификаторы в правильном порядке, но «список» содержит все в записи базы данных (что имеет смысл).Я также пробовал группировать по IDNum и Time, но затем я получаю уникальные записи времени и возвращаются несколько идентификаторов.
Я мог бы сделать цикл foreach и вручную все это уладить, но я бы действительно не хотел этого делать.
Есть предложения?