c# - Convert from Expression<Func<TModel, string>> to Expression<Func<TModel, bool>> -


what if have expression 'e => e.name' , value 'brad', want compose/modify 'e => e.name.contain("brad")' or 'e => e.name == "brad"'.

i writing below:

    public expression<func<tmodel, bool>> tobool(expression<func<tmodel, object>> source, string value)     {         parameterexpression paramexpression = expression.parameter(typeof(tmodel), "u");         constantexpression valueexpression = expression.constant(value, typeof(string));         binaryexpression equalvalue = expression.makebinary(expressiontype.equal, source.body, valueexpression);         expression<func<tmodel, bool>> lambdaresult = expression.lambda<func<tmodel, bool>>(equalvalue, new parameterexpression[] { paramexpression });         return lambdaresult;     } 

i keep getting error "the parameter u not bound in specified linq entities query expression" when query triggered.

would please point out i'm doing wrong here?

thanks lot help

source.body references parameterexpression original lambda, never declare in new lambda.
new u parameter never used.

you should reuse source.parameters[0] instead of creating new parameter.


Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -