private MethodCallExpression ReplaceQueryableMethod(MethodCallExpression old)
{
Expression obj = null;
if (old.Object != null)
{
obj = this.Visit(old.Object);
}
MethodInfo methodInfo = QueryableTransformer.ReplaceQueryableMethod(old.Method);
ParameterInfo[] parameters = methodInfo.GetParameters();
Expression[] array = new Expression[old.Arguments.Count];
for (int i = 0; i < array.Length; i++)
{
array[i] = QueryableTransformer.UnquoteIfNeeded(this.Visit(old.Arguments[i]), parameters[i].ParameterType);
}
return(new MethodCallExpression(obj, methodInfo, array.ToReadOnlyCollection <Expression>()));
}