11 个解决方案
#1
求助,求解答!谢谢!
#2
应该是不行,Func<TEntity, bool> func过来已经被编译完了,不能再转化成表达式树了
#3
除非你的func也是Expression<Func<TEntity, bool>>才能修改,否则它只是一个委托(函数指针)
#4
是的,func也是Expression<Func<TEntity, bool>>,应该如何操作?
#5
你这个需求不需要修改啊
Expression<Func<TEntity, bool>> exp = func;
就可以了,如果要修改,应该是调用Expression.XXX这些函数重新构造
#6
应该是func是一个Func<TEntity, bool>,exp是一个Expression<Func<TEntity, bool>>,其中这个TEntity和bool是一致的。
#7
Func<TEntity, bool>只是一个委托,Expression<Func<TEntity, bool>>才是表达式。
一个类比与程序执行结果,一个类比与源程序。光有个结果,谁知道是那个程序跑出来的?
#8
也就是说无法通过委托构建表达式了
#9
一般来说就是不行了。
这就像是要反编译,需要IL层次的知识,而且不同的.NET版本的委托指针内存模式还不一样。
#10
Func<Product, bool> predicate = m => m.Id == 1;
Expression<Func<Product,bool>> expression = m => predicate(m);
不知道这个样写可不可以
#11
当我没说。。。不能用
#1
求助,求解答!谢谢!
#2
应该是不行,Func<TEntity, bool> func过来已经被编译完了,不能再转化成表达式树了
#3
除非你的func也是Expression<Func<TEntity, bool>>才能修改,否则它只是一个委托(函数指针)
#4
是的,func也是Expression<Func<TEntity, bool>>,应该如何操作?
#5
你这个需求不需要修改啊
Expression<Func<TEntity, bool>> exp = func;
就可以了,如果要修改,应该是调用Expression.XXX这些函数重新构造
#6
应该是func是一个Func<TEntity, bool>,exp是一个Expression<Func<TEntity, bool>>,其中这个TEntity和bool是一致的。
#7
Func<TEntity, bool>只是一个委托,Expression<Func<TEntity, bool>>才是表达式。
一个类比与程序执行结果,一个类比与源程序。光有个结果,谁知道是那个程序跑出来的?
#8
也就是说无法通过委托构建表达式了
#9
一般来说就是不行了。
这就像是要反编译,需要IL层次的知识,而且不同的.NET版本的委托指针内存模式还不一样。
#10
Func<Product, bool> predicate = m => m.Id == 1;
Expression<Func<Product,bool>> expression = m => predicate(m);
不知道这个样写可不可以
#11
当我没说。。。不能用