2011-06-14 41 views
2

嗨,我有一個SQL查詢如下。在實體框架中使用/加入lambda表達式

select * 
from Customers as C 
where 
c.CompanyID in (
    select CompanyID 
    from Projects 
    where Projects.ID in (
    select ProjectAssignment.ProjectID 
    from ProjectAssignment 
    where ProjectAssignment.EmployeeID = 7 
) or Projects.ID in (
    select T.ProjectID 
    from Tasks as T 
    where t.AssignedUserID = 7 
) 
) 

我該如何寫lambda表達式?

回答

1

試一下(不知道它的工作):

var projectIds1=ProjectAssignment.Where(pa=>pa.EmployeeID ==7).Select(ps=>pa.ProjectID); 

var projectIds2=Tasks.Where(t=>t.AssignedUserID ==7).Select(t=>t.ProjectID); 

var companyIds=Projects.Where(p=>projectIds1.Contains(p.ID) || projectIds2.Contains(p.ID)). 
    Select(p=>p.CompanyID); 

var result=Customers.Where(c=>companyIds.Contains(c.CompanyID)); 
相關問題