Convert SQL to LINQ to Entities WHERE IN clause

怎甘沉沦 提交于 2019-12-12 04:59:50

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!