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不存在