Remotion.Linq.SqlBackend.MappingResolution.SqlContextExpressionVisitor.VisitMethodCallExpression C# (CSharp) Method

VisitMethodCallExpression() protected method

protected VisitMethodCallExpression ( MethodCallExpression expression ) : Expression
expression System.Linq.Expressions.MethodCallExpression
return System.Linq.Expressions.Expression
    protected override Expression VisitMethodCallExpression (MethodCallExpression expression)
    {
      // Method arguments and target instance are always values

      var newInstance = expression.Object != null ? ApplyValueContext (expression.Object) : null;
      var newArguments = expression.Arguments.Select (ApplyValueContext).ToArray();
      if (newInstance != expression.Object || !newArguments.SequenceEqual (expression.Arguments))
        return Expression.Call (newInstance, expression.Method, newArguments);

      return expression;
    }