问题
How can I convert this sql statetment to LINQ to Entities?
SQL Statement:
Select * from Departments where DepartmentID in (Select DepartmentID from Employees where FirstName like '%FirstName%' or LastName like '%LastName%')
All I have is WHERE =(equals) , I can't do the WHERE IN clause
LINQ to Entities:
from t in db.Departments
where
t.DepartmentID == -->Should be IN not EQUALS
((from t0 in db.Employees
where
t0.FirstName.Contains("FirstName") ||
t0.LastName.Contains("LastName")
select new {
t0.DepartmentID
}).FirstOrDefault().DepartmentID)
select t
回答1:
(from d in db.Departments
join e in db.Employees
on d.DepartmentID equals e.DepartmentID
where e.FirstName.Contains("FirstName") ||
e.LastName.Contains("LastName")
select t).Distinct()
回答2:
u could use this
var x =
(from t0 in db.Employees
where
t0.FirstName.Contains("FirstName") ||
t0.LastName.Contains("LastName")
select new {
t0.DepartmentID
}).FirstOrDefault().DepartmentID;
from t in db.Departments
where
t.DepartmentID.contains(x.DepartmentID)
select t
来源:https://stackoverflow.com/questions/16555471/convert-sql-to-linq-to-entities-where-in-clause