假设我有两个参数:
参数 1 一个表达式,它接受一个 T 并从中获取相关产品的 ID
Expression<Func<T,int>> prodIdProperty = x=>x.Product.Id
参数 2 一个要与之比较的 productid ,比方说
int productid = 5;
有什么方法可以在运行时将其(在代码中)转换为这样的新表达式:
Expression<Func<T,bool>> prodIdProperty = x=>x.Product.Id == 5
我基本上需要这样的东西:
Expression<Func<T,bool>> TransformToPredicate(Expression<Func<T,int>> prodIdProperty,int productid){
//insert expression transform magic I don't seem to grasp...
}
我需要这个,因为我想将它作为谓词传递给我的 EF Where 子句,这意味着我不能包含我的 prodIdProperty 的编译版本,因为它需要调用不支持的 Invoke()
(我已经尝试在这个问题中以另一种方式提出我的问题,但我认为我在那里过于复杂了)