public virtual void Visit(SqlContainsTable node) { VisitInternal(node.Asterisk); foreach (SqlTableColumn column in node.Columns) { VisitInternal(column); } VisitInternal(node.SearchCondition); foreach (SqlTableColumn column in node.TargetColumns) { VisitInternal(column); } VisitInternal(node.TargetTable); }
public void Visit(SqlContainsTable node) { if (node.TargetTable != null) { Visit(node.TargetTable); } foreach (var column in node.Columns) { Visit(column); } foreach (var column in node.TargetColumns) { Visit(column); } }
public override void Visit(SqlContainsTable node) { string columns; if (node.TargetColumns.Count == 1) { columns = node.TargetColumns[0] == node.Asterisk ? node.TargetColumns[0].Name : translator.QuoteIdentifier(node.TargetColumns[0].Name); } else { columns = "(" + string.Join(", ", node.TargetColumns.Select(c => translator.QuoteIdentifier(c.Name)).ToArray()) + ")"; } context.Output.AppendText(string.Format( "CONTAINSTABLE({0}, {1}, ", translator.Translate(context, node.TargetTable.DataTable), columns)); node.SearchCondition.AcceptVisitor(this); if (node.TopNByRank != null) { context.Output.AppendText(", "); node.TopNByRank.AcceptVisitor(this); } context.Output.AppendText(") "); }