我有一个linq查询,我想获得。
的查询语法var q = customers.Where(x => x.name == "smith");
是否有像IQueryable.ToQuerySyntaxString()这样的东西?会返回这样的东西:
来自cust的客户凡cust.name ==“史密斯”;
我问,因为我可以使用方法语法构建我的查询,但希望查看相同的查询语法,以帮助我学习如何以替代形式编写。
答案 0 :(得分:1)
它实际上是相反的。当您使用第二种语法(from x in y where w
)时,它实际上被编译为第一种语法(y.Where(x => w)
)。
我确信你可以使用Expression Trees编写一些东西来制作第二个版本,但是我不知道框架中会自动为你做任何事情。
答案 1 :(得分:0)
从relinq.codeplex.com尝试re-linq
new QueryParser ().GetParsedQuery (q.Expression).ToString()
会给你这个。
答案 2 :(得分:0)
Resharper通常允许你这样做。它可以建议从for / foreach转换为LINQ以及LINQ转换回循环(后者请参见http://www.jetbrains.com/resharper/whatsnew/whatsnew_60.html#LINQtoLoops),以及查询语法中的LINQ方法链。