【问题标题】:Convert SQL to LINQ to Entities WHERE IN clause将 SQL 转换为 LINQ 到实体 WHERE IN 子句
【发布时间】:2013-05-15 01:45:46
【问题描述】:

如何将此 sql 语句转换为 LINQ to Entities?

SQL 语句:

Select * from Departments where DepartmentID  in (Select DepartmentID from Employees where FirstName like '%FirstName%' or LastName like '%LastName%')

我只有 WHERE =(equals) ,我不能做 WHERE IN 子句

LINQ to 实体:

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

【问题讨论】:

标签: sql sql-server linq linq-to-entities


【解决方案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】:

你可以用这个

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

【讨论】:

    猜你喜欢
    • 2012-06-30
    • 1970-01-01
    • 2020-01-21
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2014-06-07
    相关资源
    最近更新 更多