ToUpper() in an Expression.Call
.net, c#, linq
Solution
Just add an `Expression.Call`:
var predicate =
Expression.Lambda<Func<T, bool>>(
Expression.Call(
Expression.Call( // <=== this one is new
Expression.PropertyOrField(parameter, "FirstName"),
"ToUpper", null),
"Contains", null,
Expression.Constant("myvalue".ToUpper())), parameter
);
which then reports itself as:
Param_0 => Param_0.FirstName.ToUpper().Contains("MYVALUE")
Problem
The code below work, but I'd like introduce a `ToUpper()` ``` var predicate = Expression.Lambda<Func<T, bool>>( Expression.Call( Expression.PropertyOrField(parameter, "FirstName"), "Contains", null, Expression.Constant("myvalue".ToUpper())), parameter ); ``` The result is : ``` {Param_0 => Param_0.FirstName.Contains("MYVALUE")} ``` But I'd like this : ``` {Param_0 => Param_0.FirstName.ToUpper().Contains("MYVALUE")} ``` How can I change ?