如何将linq查询(或下面的表达式)翻译成人类可读的字符串?用于调试目的。
Expression<Func<User, bool>> query
修改
因为很难理解:我想从表达式中获取一个字符串。因此表达式的示例声明。
Expression<Func<User, bool>> query2 =
u => u.FirstName.StartsWith("J") && u.LastName == "Gauffin";
应该打印“FirstName以'J'开头,LastName等于'Gauffin'”;
答案 0 :(得分:5)
提示: 如果您使用linq查询sql或实体框架,可以使用IQueryable对象上的ToString()方法在sql中获取查询:
query2.ToString()给出类似于:
的内容SELECT * FROM Table1 WHERE FirstName LIKE 'J%' AND LastName="Gauffin"
答案 1 :(得分:1)
查看VS samples文件夹中的LINQ Expression Visualizer。
或者在LINQ to SQL中,您可以使用DataContext.Log
查看它在Entity Framework中,您将LINQ查询转换为ObjectQuery并调用ToTraceString