Я пытаюсь получить List<Student>
из моей базы данных.
По сути, схема выглядит так:
GradeParalelo ---- GradeStudent ---- Student
Где таблица GradeStudent содержит первичные ключи для GradeParalelo и Student. ПРИМЕЧАНИЕ. В таблице GradeStudent есть дополнительный столбец для хранения целого числа.Это не просто таблица ассоциаций.
Вот то, что я пробовал до сих пор:
ColegioDBV2Entities db = new ColegioDBV2Entities();
public List<Student> FindAllStudentsFromGradeParalelo(int gradeParaleloId)
{
return (db.Students
.Include("GradeStudents")
.Include("GradeStudents.GradeParalelo")
.Where<Student>(s => s.StudentId == gradeParaleloId)).ToList();
}
Но он извлекает одного ученика для каждой оценки, выбранной Паралело.Понятно, потому что я сравниваю StudentId с GradeParaleloId. Это не то, что я хочу.
Кто-нибудь может предложить способ получения этой коллекции?
Изображение, которое я хочу получить для всех учеников в таблице GradeStudent с идентификатором GradeParalelo 6.
В основном это в более элегантной форме:
public List<Student> FindAllStudentsFromGradeParalelo(int gradeParaleloId)
{
List<Student> students = new List<Student>();
using(GradeStudentRepository repo = new GradeStudentRepository())
{
var items = repo.FindAllGradeStudents().Where(g => g.GradeParaleloId == gradeParaleloId);
StudentRepository studentRepo = new StudentRepository();
foreach (var o in items)
{
students.Add(studentRepo.FindStudent(o.StudentId));
}
}
return students;
}