2013-06-19 69 views
0

因此,我有兩個表格Site和Contact通過ContactSites表具有多對多關係。網站和聯繫人表格都有一個名爲已刪除的布爾屬性。我想嘗試寫一個LINQ查詢其中列出了有刪除的屬性= false,並具有相關網站的所有聯繫人也有刪除的屬性=假EF Linq使用嵌套子查詢的多個內部聯接

這裏是我使用的代碼:

from c in Contacts 
where c.Deleted == false 
select new{c.LName, c.FName, SiteContactSites = 
          (from cs in ContactSites 
          where cs.Contact_ID == c.ID 
          select new{ cs.Contact_ID, cs.Site_ID, Sites = 
                   (from s in Sites 
                   where cs.Site_ID == s.ID && 
                   s.Deleted == false 
                   select cs).First()}).First()} 

但結果看起來像一個外部連接vs我想要的內部連接。

我特別尋找一種方式,以嵌套子查詢做到這一點,而不是加入這將是:

from c in Contacts 
join cs in ContactSites on c.ID equals cs.Contact_ID 
join s in Sites on cs.Site_ID equals s.ID 
where c.Deleted == false && s.Deleted == false 
select c 

任何幫助表示讚賞

+0

請問第二個 - 簡單,簡潔 - 代碼示例工作?如果是這樣,你爲什麼要子查詢? – lisp

+0

以及第二個代碼示例中linqpad寫作時,但在C#中vs2012由於沒有用於ContactSites – user2129585

+0

沒有模型,但隨後第一querry將不能工作也不行,因爲你在ContactSites參加工作。 – lisp

回答