示例#1
0
 internal SqlMatch(SqlExpression value, SqlSubQuery subQuery, bool unique, SqlMatchType matchType)
     : base(SqlNodeType.Match)
 {
     this.value     = value;
     this.subQuery  = subQuery;
     this.unique    = unique;
     this.matchType = matchType;
 }
        /// <inheritdoc/>
        public override void ReplaceWith(SqlExpression expression)
        {
            ArgumentValidator.EnsureArgumentNotNull(expression, "expression");
            ArgumentValidator.EnsureArgumentIs <SqlSubQuery>(expression, "expression");
            SqlSubQuery replacingExpression = expression as SqlSubQuery;

            query = replacingExpression.Query;
        }
示例#3
0
        public override void ReplaceWith(SqlExpression expression)
        {
            ArgumentValidator.EnsureArgumentNotNull(expression, "expression");
            ArgumentValidator.EnsureArgumentIs <SqlMatch>(expression, "expression");
            SqlMatch replacingExpression = expression as SqlMatch;

            value     = replacingExpression.Value;
            subQuery  = replacingExpression.SubQuery;
            matchType = replacingExpression.MatchType;
            unique    = replacingExpression.Unique;
        }
        internal override object Clone(SqlNodeCloneContext context)
        {
            if (context.NodeMapping.ContainsKey(this))
            {
                return(context.NodeMapping[this]);
            }

            SqlSubQuery        clone;
            SqlSelect          select     = query as SqlSelect;
            SqlQueryExpression expression = query as SqlQueryExpression;

            if (select != null)
            {
                clone = new SqlSubQuery((SqlSelect)select.Clone(context));
            }
            else
            {
                clone = new SqlSubQuery((SqlQueryExpression)expression.Clone(context));
            }
            context.NodeMapping[this] = clone;
            return(clone);
        }