2009-01-11 46 views
1

我有一個包含三個表(學生,課程和第三個StudentsCourses分配表)的經典多對多場景。帶分組的實體框架查詢(多對多)

我在我的新項目中使用EF並且EF設計器不創建第三個表格。 我需要選擇所有cources以及分配給它的學生人數。 使用普通SQL是非常簡單的:

select c.Id, c.Name, Count(sc.*) as StudentCount 
from Courses c left join StudentCourses sc on(c.Id=sc.CourseId) 
group by c.Id, c.Name 

但我無法弄清楚如何將這個查詢轉換爲LINQ到SQL。 請指教。

謝謝。

回答

2

EF設計師隱藏表格。它仍然存在,但它只是爲你創建聯想,所以你可以從課程中引用學生,反之亦然。

0

你可以做這樣的事情:

var list = from c in context.Courses 
      from s in c.Students 
      select new 
      { 
      StudentName=s.Name, 
      Class=s.Class, 
      }; 

以獲取更多信息看this page