想知道是否有任何方法可以获得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,但理想情况下,这可以在没有第三方工具的情况下完成.
简单地说:
string lambdaSyntax = query.Expression.ToString();
Run Code Online (Sandbox Code Playgroud)
与LINQPad相比的缺点是结果格式化了所有一行.