我尝试将我的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 :(得分:0)
您可以将存储过程导入LINQ模型,然后只需调用存储过程。
你将获得LINQ的好处,而不是重写每一个。
答案 1 :(得分:0)
你不需要这样做。 sql中的相应代码如下所示:
select * from Task t
join dbo.ENG_CUSTOMERTALLY ect on ect.ENG_CUSTOMERTALLY_CUSTOMERTASKNUMBER = t.MPDReference
所以你需要在你的linq查询中加入那些破坏者。