2010-10-04 138 views
0

以下是我的SQL查詢並希望處於LINQ中。任何人都可以幫忙嗎?將SQL查詢轉換爲LINQ

SELECT EmpId,Team,_Year FROM Plan 
where EmpId in 
(
    select EmpId from master where 2150 in (immediatesupervisor,manager) 
) 
+3

這是什麼數據庫?我不知道任何數據庫的代碼可以工作(尤其是在'immediatesupervisor,manager'位中的2150) – 2010-10-04 05:52:41

+2

忘記了LINQ,請先嚐試並寫入正確的SQL。 – RPM1984 2010-10-04 05:53:21

+0

@Dean它可能是SQL Server,因爲問題標有'linq-to-sql'。如果_master_有一個名爲_immediatesupervisor_的列和一個名爲_manager_的SQL查詢應該工作的列。它不應該有什麼具體原因? – KristoferA 2010-10-04 07:01:26

回答

0

我建議你使用聯接操作這樣

YourDbEntities db = new YourDbEntities(); 

var query = from c in db.Plan 
      join d in db.master on c.EmpId equals d.EmpId 
      where d.ImmediateSupervisor == 2150 || d.Manager == 2150 

      select new{ 
       c.EmpId, 
       c.Team, 
       c._Year 
      }; 
+0

c#中不允許使用所有數字標識符。我認爲'2150'是一個字面值,而不是一個成員。我假設_immediatesupervisor_和_manager_是表格成員...... – KristoferA 2010-10-04 06:57:35

+0

謝謝......我差點離開那個2150.我已經糾正了我的答案。 – Haekal 2010-10-04 07:27:21

0

嘗試:

var q = 
from p in dc.Plan 
where (
    from m in dc.Master 
    where m.ImmediateSupervisor == 2150 
    || m.Manager == 2150 
    select m.EmpId 
).Contains(p.EmpId) 
select new { p.EmpId, p.Team, p._Year }; 

常用LINQ語法一個很好的資源是達明衛隊的LINQ到SQL「作弊片'。這是一個單頁,你可以快速查找這樣的事情。請參閱http://damieng.com/blog/2009/08/12/linq-to-sql-cheat-sheet