LINQ查询语法到Lambda

and*_*eer 9 c# linq

想知道是否有任何方法可以获得LINQ"查询"语法表达式产生的lambda表达式.

鉴于:

var query = from c in dc.Colors
            where c.ID == 213
            orderby c.Name, c.Description
            select new {c.ID, c.Name, c.Description };
Run Code Online (Sandbox Code Playgroud)

有没有办法获得生成的"lambda"代码/表达式?

var query = dc.Colors
    .Where(c => c.ID == 213)
    .OrderBy(c => c.Name)
    .ThenBy(c => c.Description)
    .Select(c => new {c.ID, c.Name, c.Description, });
Run Code Online (Sandbox Code Playgroud)

我知道这些是非常简单的示例,并且C#编译器在编译代码时从查询表达式生成lambda表达式.有没有办法得到那个表达的副本?

我希望将此作为我的一些团队成员的训练工具,他们对lambda表达式不太满意.此外,我使用过Linq Pad,但理想情况下,这可以在没有第三方工具的情况下完成.

Joe*_*ari 5

简单地说:

string lambdaSyntax = query.Expression.ToString();
Run Code Online (Sandbox Code Playgroud)

与LINQPad相比的缺点是结果格式化了所有一行.