OrderBy nie jest tłumaczony na SQL podczas przekazywania funkcji selektora

Kiedy wykonuję:

var t = db.Table1.OrderBy(x => x.Name).ToList();

W profilerze SQL jest to przetłumaczony kod SQL:

SELECT 
[Extent1].[ID] AS [ID], 
[Extent1].[Name] AS [Name]
FROM [dbo].[Table1] AS [Extent1]
ORDER BY [Extent1].[Name] ASC

Który jest poprawny.

Jeśli jednak przekażę funkcję selektora do OrderBy:

Func<Table1, string> f = x => x.Name;
var t = db.Table1.OrderBy(f).ToList();

Przetłumaczony SQL to:

SELECT 
[Extent1].[ID] AS [ID], 
[Extent1].[Name] AS [Name]
FROM [dbo].[Table1] AS [Extent1]

Zleceniodawca nie jest całkowicie przetłumaczony.

Jaki jest problem? Są one tą samą funkcją lambda, jedyną różnicą jest w drugim przypadku, jest ona najpierw przypisana do zmiennej.

questionAnswers(1)

yourAnswerToTheQuestion