consulta Entity Framework com agrupamento (muitos para muitos)
-
10-07-2019 - |
Pergunta
Eu tenho um muito clássica para muitos cenário com três tabelas (estudantes, cursos e terceiros StudentsCourses tabela atribuição).
Eu estou usando EF no meu novo projeto e EF Designer não cria terceira tabela. Eu preciso selecionar todas as cources junto com o número de estudantes que lhe são atribuídas. Usando SQL simples é muito simples:
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
Mas eu não consigo descobrir como traduzir esta consulta para LINQ to SQL. Por favor conselho.
Obrigado.
Solução
O designer EF esconde a mesa. Ele ainda está lá, mas ele só cria a assocation para você, então você pode apenas estudantes de referência de cursos ou vice-versa.
Outras dicas
Você poderia fazer algo parecido com isto:
var list = from c in context.Courses
from s in c.Students
select new
{
StudentName=s.Name,
Class=s.Class,
};
Para obter mais informações olhada em desta página