/ Consulta Muitos-para-Muitos da Estrutura de Entidades - vb.net, entidade-estrutura, linq-para-entidades, entidade-estrutura-6

Consulta Muitos-para-Muitos do Entity Framework - vb.net, entidade-estrutura, linq-para-entidades, entidade-estrutura-6

Estou lutando para escrever uma consulta na EntidadeEstrutura que lida com um relacionamento muitos para muitos que eu estabeleci. O que eu quero fazer é obter os itens da Tabela A que pertencem a um relacionamento com a Tabela B e, ao mesmo tempo, saber pelos resultados que relacionamento foi uma correspondência correta.

Por exemplo, se eu estiver usando alunos e cursos,Quero procurar todos os alunos que estão em um conjunto de cursos e também devolver apenas os cursos correspondentes. Desejo muito especificamente iniciar a consulta com Alunos, pois isso pode ser feito facilmente, basta olhar para a propriedade de navegação Cursos para obter a lista de alunos.

O que eu quero é uma lista de Alunos em que cada Aluno contenha apenas o conjunto de Cursos na minha consulta (NÃO todos os cursos que o aluno está fazendo).

Algo como o abaixo está próximo, eu recebo olista correta de Alunos, mas a propriedade de navegação dos cursos mostra todos os cursos, não o subconjunto da minha consulta. Quero evitar ter que consultar novamente, se possível, e retornar o conjunto de alunos / cursos de que preciso.

Dim listOfStudents = From s In Students
From c In s.Courses
Where listOfCourseIds.Contains(c.CourseId)

Respostas:

0 para resposta № 1

Se não houver tabela de junção entre os dois, tente:

from s in dc.Students
from c in s.Courses
where c.CourseID == courseID
select s;

Se a entidade tiver uma tabela de junção entre os dois, tente:

from s in dc.Students
from e in s.StudentsCourses
where e.Course.CourseID == courseID
select s;