这与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无法处理它......