2011-03-19 97 views
0

我用內連接和左連接在一起在後面的查詢,但結果只是PostTags和PostXTags之間的左連接。 我的問題是什麼?我不能使用內連接和左連接在一起

from pt in db.PostTags 
        join xp in 
         (
          from x in db.PostXTags 
          join p in db.Posts 
          on x.PostID equals p.PostID 
          where p.PostID == postID 
          select x 
          ) 
        on pt.PostTagID equals xp.PostTagID into g 
        from ptxp in g.DefaultIfEmpty() 
        where (pt.BlogID == blogID && pt.Type == PostTags.Type.Category) 
        select pt; 

回答

0

EF使用INNER JOIN當兩個表相關聯的1 < - > *(或1 < - > 1)。
在其他情況下,通常使用LEFT OUTER JOIN。
如果實體之間不存在關聯,則也會使用LEFT OUTER JOIN。