Как правильно использовать LINQ groupby для двух таблиц, соединенных через промежуточную таблицу? - PullRequest
0 голосов
/ 20 июня 2019

У меня есть три таблицы.

  1. Интервью
  2. интервьюеры
  3. InterviewSchedule.

интервьюер может быть назначен для нескольких интервью

интервью может иметь несколько интервьюеров .

Итак,

  • InterviewSchedule таблица содержит столбцы interviewid, interviewerid. (Отношение много ко многим)
  • Интервьюируемый имеет столбцы - InterviewId, InterviewLocation, InterviewSubject.
  • Интервьюер В таблице есть столбцы - InterviewerId, InterviewerName, InterviewerTitle.

Теперь я хочу создать отчет о интервью с подробностями интервьюера . Я создал dataobject как InterviewId, InterviewLocation, InterviewSubject, List<Interviewer>;

Я пытаюсь сделать один запрос LINQ , чтобы получить мой вывод. Я использую entityframework и уже создал контекст.

Я новичок в LINQ , но я вижу, что это возможно, и я видел несколько постов от людей groupby, использующих Id.

Мне кажется, моя проблема в том, что я хочу выбрать несколько полей из обеих таблиц через промежуточную таблицу.

var output = (from i in Interview 
              join ia in InterviewSchedule on i.interviewid equals ia.interviewid 
              join iw in Interviewers on ia.interviewerid equals iw.interviewerid) 
              group i by i.interviewid into g 
              select new {i, interviewers = new {interviewername, interviewertitle} };

Я потерян в этот момент. Разве это не правильный подход? Нужно ли делать цикл for, чтобы добавить всех интервьюеров в список, один за другим?

1 Ответ

0 голосов
/ 20 июня 2019

Пожалуйста, попробуйте это

            var output = (from i in Interview
                          group i by i.InterviewId into g
                          join ia in InterviewSchedule on g.Key equals ia.InterviewId
                          join iw in Interviewers on g.Key equals iw.InterviewerId
                          select new { g.Key, interviewers = iw }).ToList();

см. LINQ: объединение объединения и группировки по

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...