1

我有一个经典的多对多场景,其中包含三个表(学生、课程和第三个学生课程分配表)。

我在我的新项目中使用 EF 并且 EF 设计器没有创建第三个表。我需要选择所有课程以及分配给它的学生人数。使用纯 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 to SQL。请指教。

谢谢你。

4

2 回答 2

2

EF 设计器隐藏表格。它仍然存在,但它只是为您创建了关联,因此您可以参考课程中的学生,反之亦然。

于 2009-01-22T22:01:48.013 回答
0

你可以这样做:

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

有关更多信息,请查看此页面

于 2010-09-22T12:11:39.777 回答