2013-09-05 62 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