2010-09-07 29 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查询中加入这些攻击者。