2011-12-05 29 views
1

如何進行以下到LINQ:LINQ INNER JOIN與2內部連接

SELECT T.fn, T.ln, T.Phone 
    FROM PG P 
    LEFT JOIN BUD B ON P.PgID = B.PgID 
    LEFT JOIN TERR T ON B.Tir= T.Tir 

我嘗試以下,但沒有奏效:

var result = (from pr in db.PG 
        join b in db.BUD on pr.PgID equals b.PgID into tl_b 
        join tr in db.TERR on b.Tir equals tr.Tirr into tl_tr              
        from b in tl_b.DefaultIfEmpty() 
        from tr in tl_tr.DefaultIfEmpty() 
       select new { 
        tr.fn, tr.ln,tr.Phone 

       }); 
+1

它是如何工作的? –

回答

0

取出成報表,不重複使用的名稱(b,TR)

var result = (from pr in db.PG 
       join b in db.BUD on pr.PgID equals b.PgID 
       join tr in db.TERR on b.Tir equals tr.Tirr 
       from b2 in b.DefaultIfEmpty() 
       from tr2 in tr.DefaultIfEmpty() 
      select new { 
       tr2.fn, 
       tr2.ln, 
       tr2.Phone 
      }); 

嘗試用這個,但如果你得到一個NullReference例外,我不會感到驚訝。 讓我們知道。

+0

好的 - 謝謝。讓我試試看。今天晚些時候可能會稍微遲一點,因爲我發現了一些其他的火災 –