2013-09-05 59 views
0

您好我是LINQ的新手,需要将以下SQL转换为LINQ。 有人可以帮我写一下吗?将SQL转换为LINQ查询

select emp.id, emp.name from employee emp 
left join department dept on dept.id = emp.deptid 
and (emp.managerid = '001' or (emp.manager in (select managerid from manager where location Contains('l001','l002','l003') and state =1))) 

感谢

+0

? –

回答

1

也许是这样的:

var locationIds = new List<string> {"l001", "l002", "l003"}; 
var ls=(
    from emp in db.employee 
    from dept in db.department 
     .Where(a=>a.id == emp.deptid).DefaultIfEmpty() 
    where (emp.managerid == "001" 
     || db.manager.Where(w=>locationIds.Contains(w.location) && w.state == 1) 
        .Select(s=>s.managerid).Contains(emp.manager)) 
    select new 
     { 
      emp.id, 
      emp.name 
     } 
).ToList(); 

其中db是将预期的这个查询做LINQ数据上下文

+0

嗨感谢您的回复。只是我在查询中进行了小改动。而不是与一个字符串进行比较,我想使用contains。我怎样才能做到这一点?我更新了我的帖子。 – jestges

+0

更新答案。看一看 – Arion