我有3个表学生,课程和学生课程链接表,我如何返回给予学生Id = 1的所有课程,但也包括学生ID可能不是1并且与学生一样的课程id 1?结构是这样的:
student courses studentcourse
1 8 1 - 8
2 9 2 - 8
3 10 3 - 9
所以棘手的部分是我还想包括课程8的其他行或者id为1的学生所采取的任何其他课程。
最终结果应该是2行:where子句将指定我对student id = 1(这是id 8的过程)的课程感兴趣,但我还想包括该课程中的其他行。结果是:
1 - 8
2 - 8
答案 0 :(得分:1)
鉴于这是EF和您的最新说明,您应该在Courses
实体上拥有Student
导航属性,并在Students
实体上设置Course
导航你要做以下事情:
var students = db.Students
.Single(x=> x.Id == 1)
.Courses.SelectMany(c=> c.Students)
.Distinct();