LINQ вложенный запрос - PullRequest
0 голосов
/ 12 мая 2009

Как мне написать следующий SQL-запрос, используя LINQ

SELECT priority 
FROM Active_SLA 
WHERE APP_ID = (
        SELECT APP_ID 
        FROM FORM_PAGES 
        WHERE PAGE_ADDRESS = @address
    ) 
AND PERSON_ID = (
        SELECT PERSON_ID 
        FROM PERSON_DEVICES 
        WHERE DEVICE_NUMBER = @devicenum
     )

1 Ответ

3 голосов
/ 12 мая 2009

Попробуйте это (странность форматирования ради избежания переноса ...)

var query = from sla in db.ActiveSLA
            where sla.AppId == (db.FormPages
                         .Where(page => page.PageAddress == address)
                         .Single().AppId)
               && sla.PersonId == (db.PersonDevices
                         .Where(pd => pd.DeviceNumber == deviceNumber)
                         .Single().PersonId)
            select sla.Priority;

Однако, я бы очень хотел сделать это как объединение:

var query = from sla in db.ActiveSLA
            join fp in db.FormPages on sla.AppId equals fp.AppId
            where fp.PageAddress == address
            join pd in db.PersonDevices on sla.PersonId equals pd.PersonId
            where pd.DeviceNumber == deviceNumber
            select sla.priority;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...