2011-08-27 59 views
1

我試圖讓一個人屬於使用此查詢的團隊。問題在於它返回了人員所在團隊的所有部門的團隊(我得到了多個相同的記錄)。我想我必須替換.contains,但我無法弄清楚,因爲我是一個完整的newb,並且找不到任何有用的雙連接示例。爲了使其按預期工作,我必須改變什麼?提前致謝。雙連接查詢返回多個相同的記錄而不是唯一的記錄

public IQueryable<Team> GetTeamsByPersonID(int id) 
    { 
     return from t in entities.Teams 
       join d in entities.Departments 
       on t.TeamID equals d.TeamID 
       where (from p in entities.Person_Departments 
         join dep in entities.Departments 
         on p.DepartmentID equals dep.DepartmentID 
         where p.PersonID == id 
         select dep.TeamID).Contains(d.TeamID) 
       select t; 
    } 

回答

4

嘗試

return (
from t in entities.Teams 
from d in entities.Departments 
from p in entities.Person_Departments 
where t.TeamID == d.TeamID && p.DepartmentID == d.DepartmentID && p.PersonID == id 
select t 
).Distinct(); 
+0

我不知道我能寫這樣的....就這麼簡單!非常感謝! – Tsarl

相關問題