如何对通过中间表连接的两个表正确使用LINQ groupby?

时间:2019-06-20 02:01:22

标签: entity-framework linq linq-to-entities

我有三个桌子。

  1. 访谈
  2. 访问者
  3. InterviewSchedule。

可以安排采访者进行多次采访

采访可以有多个采访者

所以

  • InterviewSchedule 表具有列_.intersection(Object.keys(a), Object.keys(b)).forEach(prop => a[prop] = b[prop]) interviewid。 (多对多关系)
  • Interviewtable 具有列-intervieweridInterviewIdInterviewLocation
  • Interviewer 表具有列-InterviewSubjectInterviewerIdInterviewerName

现在,我想生成一个采访的报告,其中包含采访者详细信息。 我创建了一个InterviewerTitledataobjectInterviewIdInterviewLocationInterviewSubject

我正在尝试进行一个 LINQ 查询以获取我的输出。我使用了 entityframework ,并且已经创建了上下文。

我是 LINQ 的新手,但我认为这是可能的,并且我看到人们List<Interviewer>使用ID发出了多个帖子。

我认为我的问题是我想通过中间表从两个表中选择多个字段。

groupby

我现在迷路了。这不是正确的方法吗?我是否必须进行“ for”循环才能将所有面试官一个接一个地添加到列表中?

1 个答案:

答案 0 :(得分:0)

请尝试这个

            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: combining join and group by