多表Linq连接查询

时间:2013-07-10 01:32:06

标签: linq

My table schema

我需要的查询是:

我想列出所有高尔夫球场(GolfCourseInfo)和DatePlayed(GolfQuestTee)。

并非所有高尔夫球场都已经上场,所以DatePlayed将会是空的,但我需要列出所有高尔夫球场,无论如何。

我在LinqPad中遇到了一些问题,但他们总是只返回具有相应DatePlayed值的课程,而这不是我需要的。

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

假设您只是连接到Linqpad中的数据库(因此,使用LINQ to SQL),它应该是这样的:

from info in GolfCourseInfos
select new { 
               info,
               Dates = info.Tees.SelectMany(t => t.GolfQuestTees)
                                .Select(x => x.DatePlayed)
           }

它会在没有日期的情况下提供空的Dates个集合。

答案 1 :(得分:1)

在这里猜猜,但是这样的事情?

from c in GolfCourseInfo 
join t in Tee on c.Id equals t.CourseInfoId
join q in GolfQuestTee on t.Id equals q.TeeId
select new
{
   CourseID = c.Id,
   CourseName = c.CourseName,
   Location = c.Location,
   DatePlayed = q.DatePlayed
}