Как я могу конвертировать мои Sql коды в Linq? - PullRequest
1 голос
/ 07 сентября 2010

Я пытаюсь преобразовать свой код 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 голосов
/ 07 сентября 2010

Вам не нужно делать это так. Соответствующий код в sql будет выглядеть так:

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

Так что вам нужно присоединиться к этим бастерам в вашем запросе linq.

0 голосов
/ 07 сентября 2010

Вы можете импортировать хранимую процедуру в модель LINQ, а затем просто вызвать хранимую процедуру.

Вы получите все преимущества LINQ без переписывания каждого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...