Linq to Entities - подзапрос в операторе where - PullRequest
1 голос
/ 14 января 2011

Это должно быть просто, но я искал 2 часа и не могу найти ответ. Как мне написать это в Linq to Entities:

SELECT Reg4, Reg5, Reg6
FROM dbo.Table1
WHERE Reg1 = 15
AND Reg2 = ( SELECT MAX(Reg2) FROM dbo.Table2 WHERE Reg1 = 15);

Возможно ли сделать это как в выражениях запросов, так и в синтаксисах на основе методов?
Tks

1 Ответ

4 голосов
/ 14 января 2011
var r1 = 15;
var q = from t in Context.Table1
        where t.Reg1 == r1 && 
              t.Reg2 == Context.Table2
                               .Where(t2 => t2.Reg1 == r1)
                               .Max(t2 => t2.Reg2)
        select t;

Еще проще, если у вас есть навигация / связь из Таблицы1 в Таблицу2. Но ты этого не показывал, и я тоже не буду ...

...