тоже довольно неэффективно, но похоже, что 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.

Ответы на вопрос(3)

Ваш ответ на вопрос