假设我们有桌子
学生
Id,
Name
ClassRoom
Id,
Room Number
StudentClassRoom
Id
StudentId
ClassRoomId
家庭作业
Id
Name
学生作业
Id
StudentId
HomeworkId
CreatedAt
我想查找与我一起上课的所有学生的所有StudentHomework记录。
例如,如果有4个班级,A,B,C,D。如果我在A,B,C班级中,那么我希望能够找到该学生所在的所有StudentHomework记录像我一样的StudentClassRoom。
我尝试过
return Context.StudentHomeworks
.Where(e => e.Student.StudentClassRooms.Select(b => b.Student.Id).Contains(e.Student.Id))
.OrderByDescending(b => b.CreatedAt)
并没有给我我期望的结果。有人可以帮我解决我需要的查询吗?谢谢
答案 0 :(得分:0)
我会做类似的事情:
var myId = 1111111;
// first select all ids of student in your class
var studentInMyClass = Context.StudentClassRooms
.Where(a => a.StudentId == myId).Select(a => a.StudentId).ToList();
// then select homeworks of those students
return studentHomeworks
.Where(b => studentIdsInMyClass.Contains(b.StudentId))
.OrderByDescending(b => b.CreatedAt);