2010-06-25 43 views
2

我想輸出一個IDNums +名稱+最大(TimeOut-TimeIn)的表。由於每個ID有多個時間條目,因此我只需要每個ID的最大時間更改值。到目前爲止,我有這個。但是,與ID關聯的名稱位於單獨的表中。這是我試過的:LINQ加入表然後groupby主表

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)  
});