internal static LambdaExpression ExpandInternal(LambdaExpression expression, IObjectContext context = null)
        {
            while (true)
            {
                var visitor = new TransformInvokeMapExpression(context);
                expression = (LambdaExpression)visitor.Visit(expression);

                if (!visitor.ExpressionWasReplaced)
                {
                    return((LambdaExpression)expression.Expand());
                }
            }
        }