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

我在我的新项目中使用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。 请指教。

谢谢。

有帮助吗?

解决方案

EF设计师隐藏了这张桌子。它仍然存在,但它只是为你创建了关联,所以你可以从课程中引用学生,反之亦然。

其他提示

你可以这样做:

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

有关详细信息,请参阅此页面

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top