public override void ReplaceWith(SqlExpression expression)
        {
            ArgumentValidator.EnsureArgumentNotNull(expression, "expression");
            ArgumentValidator.EnsureArgumentIs <SqlUserColumn>(expression, "expression");
            SqlUserColumn replacingExpression = expression as SqlUserColumn;

            this.expression = replacingExpression.Expression;
        }
        internal override object Clone(SqlNodeCloneContext context)
        {
            if (context.NodeMapping.ContainsKey(this))
            {
                return(context.NodeMapping[this]);
            }

            SqlColumn clone;

            clone = new SqlUserColumn((SqlExpression)expression.Clone(context));

            context.NodeMapping[this] = clone;
            return(clone);
        }