0

私のテーブルスキーマ

私が必要とするクエリは次のとおりです。

すべてのゴルフ コース (GolfCourseInfo) と DatePlayed (GolfQuestTee) を一覧表示したいと考えています。

すべてのゴルフ コースがプレーされたわけではないため、DatePlayed は空になりますが、何があってもすべてのゴルフ コースをリストする必要があります。

LinqPad でいくつかのクエリに苦労しましたが、それらは常に対応する DatePlayed 値を持つコースのみを返します。それは私が必要としているものではありません。

どんな助けでも大歓迎です。

4

2 に答える 2

2

Linqpad でデータベースに接続する (したがって、内部で LINQ to SQL を使用する) と仮定すると、次のようになります。

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

Dates日付のない空のコレクションを提供します。

于 2013-07-10T07:55:29.033 に答える
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
}
于 2013-07-10T02:36:42.373 に答える