【发布时间】:2011-01-25 13:20:20
【问题描述】:
我需要一种方法来在未来某个时候重新创建动态生成的报告。长话短说,我需要将特定的 linq 查询(每个报告不同)存储到数据库中,然后稍后使用动态 Linq 执行查询。
这一切都很好,但我找不到将表达式转换为字符串的方法。
如:
Expression<Func<Product, bool>> exp = (x) => (x.Id > 5 && x.Warranty != false);
应该变成:
"Product.Id > 5 && Product.Warranty != false"
有没有办法做到这一点?
【问题讨论】:
-
我想你在问
Expression<Func<Product,bool>>,我已经修改了你的问题。 -
这和这个问题大致相同:stackoverflow.com/questions/217961/…
-
是的,没错,我把 func 部分去掉了。
-
@leppie: ToString() 显然从反射返回元数据,而不是 lambda 表达式的实际字符串表示。
标签: c# expression dynamic-linq