2015-10-14 9 views
1

我的链接查询LINQ的加入 - 为您在记录连接表

var q = from l in db.Locations 

     select new LocationWrap { 
         Location = l 

返回每个位置

一行,直到我补充一下:

var q = from l in db.Locations 

     join lcl in db.Location_Catering_Links on l.ID equals lcl.LID into catering from lcl in catering.DefaultIfEmpty()  

     select new LocationWrap { 
         Location = l, 
         hasCatering = (lcl != null) 

它然后返回许多位置记录(如很多,因为有)。我相信它可能会做一个左外连接,当我需要的是一个布尔是否有任何餐饮记录。

我该怎么做?

回答

0

假设您在位置实体中具有Location_Catering_Links导航属性,则可以执行以下操作。

var q = from l in db.Locations 
     select new LocationWrap 
       { 
        Location = l, 
        hasCatering = l.Location_Catering_Links.Any() 
       }; 
0

你可以尝试这样的事:

var q = from l in db.Locations 
     select new LocationWrap 
     { 
      Location = l, 
      hasCatering = db.Location_Catering_Links.Any(x => x.ID==l.ID) 
     }; 

所以没有任何需要一个连接。

+0

你在答案中有一个错字。它应该是'x => x.ID == l.ID'。 – Marco

+0

@Serv oops。非常感谢你 ! – Christos