将lambda表达式与常量表达式进行比较得到的表达式

时间:2017-08-09 15:52:39

标签: c# entity-framework lambda expression

我正在处理一些通用过滤器,需要连接Expression<Func<T, Guid>>Guid,我想获得一个Expression<Func<T, bool>>所以我可以将其传递给EF for过滤

到目前为止,我尝试过这样做:

var escalarExpression = Expression.Constant(myGuid, typeof(Guid));
var comparisonExpression = Expression.Equal(guidFilter, escalarExpression);
var lambdaExpression = Expression.Lambda<Func<T, bool>>(comparisonExpression, guidFilter.Parameters[0]);

其中guidFilterExpression<Func<T, Guid>>。它适用于编译时,但在运行时我得到了

  

二进制运算符Equal未定义类型&#39; System.Func`2 [Domain.MyClass,System.Guid]&#39;和&#39; System.Guid&#39;。

我做错了什么? 谁能指出我正确的方向?

0 个答案:

没有答案