Отношение многие ко многим LINQ запрос в EF - PullRequest
0 голосов
/ 01 марта 2012

У меня есть 3 таблицы Student, Course и таблица ссылок StudentCourse, как мне вернуть все курсы с заданным Id = 1, но также включить строку, в которой ID студента может не быть 1 и проходит тот же курс, что и студент идентификатор 1? Структура выглядит так:

    student        courses     studentcourse
         1           8            1 -  8
         2           9            2 -  8
         3           10           3 -  9

Итак, самое сложное в том, что я также хочу включить другие строки для курса 8 или любого другого курса, взятого Студентом с идентификатором 1.

конечный результат должен состоять из 2 строк: в предложении where будет указано, что я заинтересован в курсе, где идентификатор студента = 1 (это курс идентификатора 8), но я также хочу включить другие строки из этого курса. Итак, результат:

1 -  8
2 -  8

1 Ответ

1 голос
/ 01 марта 2012

Учитывая, что это EF и ваше последнее разъяснение, вы должны иметь свойство навигации Courses для вашей сущности Student и навигацию Students для вашей сущности Course, которая позволит вам выполнять следующие действия:

var students =  db.Students
                  .Single(x=> x.Id == 1)
                  .Courses.SelectMany(c=> c.Students)
                  .Distinct();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...