C# 实体框架多对多+计数

C# 实体框架多对多+计数,c#,linq,entity-framework,linq-to-entities,C#,Linq,Entity Framework,Linq To Entities,我有三张桌子,教授,教授,学生 我要所有教授+每个教授有多少学生 我可以这样做: context.ProfessorSet.Include("Student") context.ProfessorSet.IncludeStudent.ToList将读取所有三个表 但我不想得到学生表,我想让Linq只得到Professor table+Count*Professor Student Group By StudentId 这是可能的?我使用以下方法: from p in context.Profe

我有三张桌子,教授,教授,学生

我要所有教授+每个教授有多少学生

我可以这样做:

context.ProfessorSet.Include("Student")
context.ProfessorSet.IncludeStudent.ToList将读取所有三个表

但我不想得到学生表,我想让Linq只得到Professor table+Count*Professor Student Group By StudentId

这是可能的?

我使用以下方法:

from p in context.ProfessorSet
from s in p.Student
group s by s.StudentId into g
select new
{
    Professor = p,
    StudentCounts = from sc in g
                    select new
                    {
                        StudentId = sc.Key,
                        Count = sc.Group.Count()
                    }
}
        var c = from tag in contexto.ProfessorSet
                select new
                {
                    Tag = tag,
                    Count = tag.Student.Count
                };
但生成以下SQL:

挑选 C.身份证, C.诺姆, C.C1 从…起 选择 A.身份证, A.诺姆, 选择 伯爵0 从教授到学生 其中A.Id=B.ProfessorId AS[C1] 从教授身上

我想要这个:

从A中选择A.Id,Count0 在A.Id=B.ProfessorId上内部连接ProfessorStudent B
Group By A.Id

行Professor=p上出现错误,无法解析符号p和Count=sc。Count不存在