我正在处理一些通用过滤器,需要连接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]);
其中guidFilter
为Expression<Func<T, Guid>>
。它适用于编译时,但在运行时我得到了
二进制运算符Equal未定义类型&#39; System.Func`2 [Domain.MyClass,System.Guid]&#39;和&#39; System.Guid&#39;。
我做错了什么? 谁能指出我正确的方向?