私が実行すると:
var t = db.Table1.OrderBy(x => x.Name).ToList();
SQL プロファイラーでは、これは変換された SQL です。
SELECT
[Extent1].[ID] AS [ID],
[Extent1].[Name] AS [Name]
FROM [dbo].[Table1] AS [Extent1]
ORDER BY [Extent1].[Name] ASC
どちらが正しい。
ただし、セレクター関数を OrderBy に渡すと、次のようになります。
Func<Table1, string> f = x => x.Name;
var t = db.Table1.OrderBy(f).ToList();
変換された SQL は次のとおりです。
SELECT
[Extent1].[ID] AS [ID],
[Extent1].[Name] AS [Name]
FROM [dbo].[Table1] AS [Extent1]
orderby は完全に翻訳されていません。
どうしたの?それらは同じラムダ関数です。唯一の違いは2番目のケースで、最初に変数に割り当てられます。