тоже довольно неэффективно, но похоже, что EF, по крайней мере, избегает поездки туда и обратно!
реобразовать следующий оператор SQL в лямбда-выражение или запрос Linq?
Следующий запрос получает самый последний ответ для каждого вопроса. Или, чтобы сформулировать это по-другому, получите каждый вопрос с самым новым ответом.
Также это будет выполнено Entity Framework.
SELECT Answers.*
FROM Answers
Where AnswerID IN
(
SELECT Max(AnswerID) AnswerID
FROM Answers
GROUP BY QuestionID
)
Вот еще один способ взглянуть на предыдущий запрос, используя Inner Join
SELECT answers.*
FROM answers
INNER JOIN
(
SELECT Max(answerID) answerID --, QuestionSiteID
FROM answers
GROUP BY QuestionID
) t ON
answers.answerID = t.answerID
Я читал, что метод LINQ Contains неоптимален для запросов, обращающихся к SQL.
LINQ to Sql и .Contains () trap.