Ejemplo n.º 1
0
        public override void ReplaceWith(SqlExpression expression)
        {
            ArgumentValidator.EnsureArgumentNotNull(expression, "expression");
            ArgumentValidator.EnsureArgumentIs <SqlCase>(expression, "expression");
            SqlCase replacingExpression = expression as SqlCase;

            value = replacingExpression.Value;
            @else = replacingExpression.Else;
            cases.Clear();
            foreach (KeyValuePair <SqlExpression, SqlExpression> pair in replacingExpression)
            {
                cases.Add(pair);
            }
        }
Ejemplo n.º 2
0
        internal override object Clone(SqlNodeCloneContext context)
        {
            if (context.NodeMapping.ContainsKey(this))
            {
                return(context.NodeMapping[this]);
            }

            var clone = new SqlCase(value.IsNullReference() ? null : (SqlExpression)value.Clone(context));

            if ([email protected]())
            {
                clone.Else = (SqlExpression)@else.Clone(context);
            }

            foreach (KeyValuePair <SqlExpression, SqlExpression> pair in cases)
            {
                clone[(SqlExpression)pair.Key.Clone(context)] = (SqlExpression)pair.Value.Clone(context);
            }

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