有没有一种方法可以从Expression<Func<T>>
构建Expression<Func<T,bool>>
?
例如对于以下类:
public class MyClass
{
public int Prop1{get;set;}
public int Prop2{get;set;}
public int Prop3{get;set;}
}
如果
Expression<Func<T>>
是 () => new MyClass{Prop2 = 5}
,那么结果应该是x => x.Prop2 == 5
。如果
Expression<Func<T>>
是 () => new MyClass{Prop1 = 1, Prop3 = 3}
,那么结果应该是x => x.Prop1 == 1 && x.Prop3 == 3
。换句话说,是否可能在运行时创建带有任意数量条件的函数?