использовать в / присоединиться к лямбда-выражению в Entity FrameWork - PullRequest
2 голосов
/ 14 июня 2011

Привет, у меня есть один SQL-запрос, как показано ниже.

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
  )
)

Как мне написать это с лямбда-выражением?

1 Ответ

1 голос
/ 26 июля 2011

Попробуйте (не уверен, что это работает):

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...