我有一个经典的多对多场景,有三个表(学生,课程和第三个学生课程分配表)。
我在我的新项目中使用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。 请指教。
谢谢。
答案 0 :(得分:2)
EF设计师隐藏了这张桌子。它仍然存在,但它只是为你创建了关联,所以你可以从课程中引用学生,反之亦然。
答案 1 :(得分:0)
你可以这样做:
var list = from c in context.Courses
from s in c.Students
select new
{
StudentName=s.Name,
Class=s.Class,
};
有关详细信息,请查看this page