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 № 1Se 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;