如何将我的Sql代码转换为Linq?

时间:2010-09-07 08:24:59

标签: c# visual-studio linq sql-server-2005

我尝试将我的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());

        }

2 个答案:

答案 0 :(得分:0)

您可以将存储过程导入LINQ模型,然后只需调用存储过程。

你将获得LINQ的好处,而不是重写每一个。

答案 1 :(得分:0)

你不需要这样做。 sql中的相应代码如下所示:

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

所以你需要在你的linq查询中加入那些破坏者。