如何将LambdaExpression.Body转换为Expression <func <...>&gt;没有通用

时间:2017-06-20 18:47:00

标签: c# lambda linq-expressions

这与this answer非常相似,但是,我在构建时没有类型信息。我有Type变量。我如何将LambdaExpression投射到Expression<Func<T,bool>>T仅在运行时知道?

更新: 这就是我正在做的事情

var funcType1 = typeof(Func<,>).MakeGenericType(nullablePropertyType, typeof(bool));
var funcType2 = typeof(Expression<>).MakeGenericType(funcType1);
var expressionFunc = Expression.Convert((filterPredicate as LambdaExpression), funcType2);

最后一行是给我这个错误信息

  

&#34;在类型&System;系统。和&#39; System.Linq.Expressions.Expression`1 [System.Func`2 [MyType,System.Boolean]]&#39;。&#34;

退一步,我想进行强制转换,因为虽然lambdaexpression实际上有Expression<Func<MyType,bool>>,但我得到错误,说Linq to Entities无法处理它......

0 个答案:

没有答案