2010-01-15 2 views
1

У меня есть SQL-запрос, как указано нижеSub запроса в LINQ

SELECT ui.PageStyleCss 
FROM UserImages ui 
WHERE ui.UserImageId IN 
    (SELECT inv.UserImageId 
    FROM Invitation inv 
    JOIN InviteeEmails invEmails ON 
    inv.InviteID = invEmails.InviteID 
    WHERE invEmails.InviteGUID = @InviteGUID 
) 

Как я могу написать это в LINQ?

Благодаря

+0

Можете ли вы предоставить более подробную информацию о том, как выглядит ваша структура таблицы? –

ответ

0
from ui in db.UserImages 
where (from inv in db.Invitations 
     join invEmails from InviteeEmails 
      on inv.InviteId equals invEmails.InviteId 
     where invEmails.InviteGUID == inviteGUID 
     select inv.UserImageId).Contains(ui.UserImageId) 
select ui.PageStyleCss 

(не уверен, если он компилирует или нет)

я должен предположить, что есть лучший путь ... это довольно много прямой перевод.

3

Моя дикая догадка заключается в том, что вы используете LINQ to SQL. Было бы неплохо, если бы вы упомянули об этом, а также детали вашей модели. Угадывание в его структуре ...

var q = from ui in Context.UserImages 
     where ui.Invitations.Any(i => i.InviteeEmails.Any(e => e.InviteGuid = inviteGuid)) 
     select ui.PageStyleCss; 
+0

+1 удивительный, хотя этот вопрос был настолько конкретным, что это помогло мне! знак равно – gideon