**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答案。
这个问题是由一个打字错误或一个无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
四个月前关门了。
Improve this question
因此我有一个实体,同其他实体有关系:教师与学生
public class Lesson
{
public int Id { get; set; }
public List<Teacher> Teachers { get; set; }
public List<Student> Students { get; set; }
public Lesson()
{
Students = new List<Student>();
Teachers = new List<Teacher>();
}
}
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public List<Lesson> Lessons { get; set; }
public Student()
{
Lessons = new List<Lesson>();
}
}
public class Teacher
{
public int TeacherId { get; set; }
public string Name { get; set; }
public List<Lesson> Lessons { get; set; }
public Teacher()
{
Lessons = new List<Lesson>();
}
}
我正在运行一个查询,将这3个表连接到这个,一切都可以得到所需的输出。但是现在我需要将教师和学生分组在课程下。下面的代码确实(明显地)将学生分组,但是当我对教师进行分组时,它不能正常工作。
var result = lessons.GroupBy(l => l.Id).Select(g => {
var groupedLesson = g.First();
groupedLesson.Students = g.Select(l => l.Students.Single()).DistinctBy(s => s.Id).ToList();
//groupedLesson.Teachers = g.Select(l => l.Teachers.Single()).DistinctBy(t=>t.TeacherId).ToList();
return groupedLesson;
});
查询输出:
我的代码生成以下输出:
[
{
"id": 1,
"teachers": [
{
"teacherId": 0,
"lessons": []
}
],
"students": [
{
"id": 1,
"lessons": []
},
{
"id": 2,
"lessons": []
}
]
}
]
所需输出:
[
{
"id": 1,
"teachers": [
{
"teacherId": 1,
"lessons": []
},
{
"teacherId": 3,
"lessons": []
}
],
"students": [
{
"id": 1,
"lessons": []
},
{
"id": 2,
"lessons": []
}
]
}
]
1条答案
按热度按时间wswtfjt71#
愚蠢的错误,教师的模型,有一列“教师Id”,这是没有Map,所以所有的条目类型教师有id = 0,所以他们不能区分的id。