2012-03-02 30 views

回答

1

這使您在結表中的所有行找回那些數據 - 每一行表示爲與該行的兩個ID的匿名對象作爲屬性:

var junctionTableDataList = (from m in context.Movies 
          from t in m.Tags 
          select new 
          { 
           MovieId = m.MovieId, 
           TagId = t.TagId 
          }).ToList(); 

你可以,如果你想限制結果爲特定或幾部電影的select之前添加where條款。

編輯

同樣與擴展方法和lambda表達式是這樣的:

var junctionTableDataList = context.Movies 
    .SelectMany(m => m.Tags.Select(t => new 
    { 
     MovieId = m.MovieId, 
     TagId = t.TagId 
    })) 
    .ToList(); 

編輯2

如果你想從一個方法,你可以返回數據創建一個litte幫助程序類型並返回這些「已命名」對象而不是匿名對象的列表:

public class JunctionData 
{ 
    public int MovieId { get; set; } 
    public int TagId { get; set; } 
} 

List<JunctionData> junctionTableDataList 
    = (from m in context.Movies 
     from t in m.Tags 
     select new JunctionData 
     { 
      MovieId = m.MovieId, 
      TagId = t.TagId 
     }).ToList(); 

...Select(t => new JunctionData...爲擴展方法語法。

+0

感謝您的回答 – JED 2012-03-03 12:36:54

+0

如果我想要在lambda表達式中執行此操作 – JED 2012-03-04 13:45:30

+0

@JED:請參閱上面的Edit。 – Slauma 2012-03-04 14:10:00

相關問題