2011-03-19 49 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。