如何将linq查询转换为人类可读的字符串

jga*_*fin 1 .net linq debugging expression

如何将linq查询(或下面的表达式)转换为人类可读的字符串?用于调试目的.

Expression<Func<User, bool>> query
Run Code Online (Sandbox Code Playgroud)

编辑

因为很难理解:我想从表达式中获取一个字符串.因此表达式的示例声明.

Expression<Func<User, bool>> query2 = 
   u => u.FirstName.StartsWith("J") && u.LastName == "Gauffin";
Run Code Online (Sandbox Code Playgroud)

应该打印"FirstName startswith'J'和LastName等于'Gauffin'"之类的东西;

Ali*_*ini 5

提示:如果使用linq查询sql或实体框架,可以使用IQueryable对象上的ToString()方法获取sql中的查询:

query2.ToString()给出类似于:

SELECT * FROM Table1 WHERE FirstName LIKE 'J%' AND LastName="Gauffin"
Run Code Online (Sandbox Code Playgroud)