2010-09-07 55 views
1

我嘗試我的SQL代碼轉換爲LINQ,但我不能:如何將我的Sql代碼轉換爲Linq?


Alter PROCEDURE sp_MatchCTallyToTask 
AS 
BEGIN 

select * from Task where MPDReference in( select MPDReference from Task 
intersect 
select ENG_CUSTOMERTALLY_CUSTOMERTASKNUMBER from dbo.ENG_CUSTOMERTALLY) 
END 
GO 


public List<Task> TaskList() 
     { 
      return engCtx.Tasks.Where(t => t.MPDReference.Contains(engCtx.ENG_CUSTOMERTALLies.Select(c => c.ENG_CUSTOMERTALLY_CUSTOMERTASKNUMBER). 
       Except(engCtx.Tasks.Select(tsk => tsk.MPDReference).AsQueryable())).ToList()); 

     } 

回答

0

可以導入存儲過程到您的LINQ模型,然後簡單地調用存儲過程。

您將享有LINQ的好處,無需重寫每一個。

0

你不需要這樣做。 sql中的對應代碼如下所示:

select * from Task t 
join dbo.ENG_CUSTOMERTALLY ect on ect.ENG_CUSTOMERTALLY_CUSTOMERTASKNUMBER = t.MPDReference 

因此,您需要在linq查詢中加入這些攻擊者。