how to change the type of the parameter in an Expression?

Question

since i am using POCOS in my domain, i want my repository to be able to received Expression filters of the type of my POCOS and change the parameter in the expression to be the of type of my LINQ tables, my fields have the same name as my members so i was able to accomplish this for 1 and 2 lambda conditions by breaking into members and constants, if i add more conditions this lead to recursively parse the binary expression.