2010-09-07 9 views
1

i essayer de convertir mon code SQL à LINQ, mais je ne peux pas:Comment puis-je convertir mes codes Sql en 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()); 

     } 

Répondre

0

Vous pouvez importer la procédure stockée dans votre modèle LINQ, puis il suffit d'appeler la procédure stockée.

Vous bénéficierez des avantages de LINQ, sans avoir à tout réécrire.

0

Vous n'avez pas besoin de le faire comme ça. Le code correspondant en sql ressemblerait à ceci:

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

Vous devez donc joindre ces busters dans votre requête linq.

Questions connexes