internal override object Clone(SqlNodeCloneContext context) { if (context.NodeMapping.ContainsKey(this)) { return(context.NodeMapping[this]); } SqlInsert clone = new SqlInsert(); if (Into != null) { clone.Into = (SqlTableRef)Into.Clone(context); } if (from != null) { clone.From = (SqlSelect)from.Clone(context); } foreach (KeyValuePair <SqlColumn, SqlExpression> p in values) { clone.Values[(SqlTableColumn)p.Key.Clone(context)] = p.Value.IsNullReference() ? null : (SqlExpression)p.Value.Clone(context); } if (Hints.Count > 0) { foreach (SqlHint hint in Hints) { clone.Hints.Add((SqlHint)hint.Clone(context)); } } context.NodeMapping[this] = clone; return(clone); }
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); }