OrderBy no se traduce a SQL al pasar una función de selector
Cuando ejecuto:
var t = db.Table1.OrderBy(x => x.Name).ToList();
En el generador de perfiles SQL, este es el SQL traducido:
SELECT
[Extent1].[ID] AS [ID],
[Extent1].[Name] AS [Name]
FROM [dbo].[Table1] AS [Extent1]
ORDER BY [Extent1].[Name] ASC
Cual es correcta.
Sin embargo, si paso una función de selector a OrderBy:
Func<Table1, string> f = x => x.Name;
var t = db.Table1.OrderBy(f).ToList();
El SQL traducido es:
SELECT
[Extent1].[ID] AS [ID],
[Extent1].[Name] AS [Name]
FROM [dbo].[Table1] AS [Extent1]
El pedido no está totalmente traducido.
¿Cuál es el problema? Son la misma función lambda, la única diferencia es en el segundo caso, primero se asigna a una variable.