2010-06-25 6 views
2

Я пытаюсь вывести таблицу IDNums + Name + Max (TimeOut-TimeIn). Мне нужно только максимальное значение изменения времени для каждого идентификатора, так как для каждого идентификатора есть несколько записей времени. У меня это до сих пор. Однако имя, связанное с идентификатором, находится в отдельной таблице. Вот что я пробовал:LINQ Join table then groupby master table

from IO_Time in db.IO_Times 
join NameTable in db.NamesTable on IO_Time.IDNum equals NameTable.IDNum 
orderby SqlMethods.DateDiffMinute(IO_Time.TimeIn, IO_Time.TimeOut) descending 
group IO_Time by IO_Time.IDNum into list 
select new 
{ 
    ID = list.Key, 
    Name = NameTable.Name 
    Time = list.Max(t=> t.TimeOut-t.TimeIn) 

}); 

Но, конечно, NameTable.Name не существует в этом контексте. Как я могу это исправить?

ответ

2
from IO_Time in db.IO_Times 
join NameTable in db.NamesTable on IO_Time.IDNum equals NameTable.IDNum 
orderby SqlMethods.DateDiffMinute(IO_Time.TimeIn, IO_Time.TimeOut) descending 
group IO_Time by new { IO_Time.IDNum, NameTable.Name } into list 
select new 
{ 
    ID = list.Key.IDNum, 
    Name = list.Key.Name 
    Time = list.Max(t=> t.TimeOut-t.TimeIn)  
});