在Web应用程序中,我有
linq To Object查询来进行数据提取/合并.
为了便于调试,我想直接在生成的 HTML中显示linq查询结构;就像是
为了便于调试,我想直接在生成的 HTML中显示linq查询结构;就像是
Bananas ->Where color='blue' ->Where size>'20cm' ->Take 25
实际上,表达树的表示.
可能吗?怎么样?
解决方法
只需在查询上调用ToString即可.显然,你需要使用AsQueryable扩展方法将字符串构建为IQueryable,而不是IEnumerable.
这个例子:
var list = new int[] { 1,2,3,4,5 }; var query = list.AsQueryable() .Where(n => n % 2 == 0) .Take(25); string querystring = query.ToString();
产生这个字符串:
System.Int32[].Where(n => ((n % 2) == 0)).Take(25)
如果你有自己特定的格式,而不是使用这个默认格式,那么you can handle it on your own很重要,但这会打开一大堆蠕虫;如果你想做的话,请确保你真的需要它.