public PgSqlCommand GetSqlCommand(TableDefinition tableDefinition) { var sqlCommand = new PgSqlCommand(); var fromComm = _fromClause.GetSqlCommand(tableDefinition); sqlCommand.AppendCommandLine($" DELETE FROM {fromComm.Command}", fromComm.Parameters); if (_whereClause != null) { var whereComm = _whereClause.GetSqlCommand(tableDefinition); sqlCommand.AppendCommandLine($"WHERE {whereComm.Command}", whereComm.Parameters); } if (_returning != null) { sqlCommand.AppendCommand($"RETURNING {_returning.GetSqlCommand(tableDefinition).Command}"); } return(sqlCommand); }
public PgSqlCommand GetSqlCommand(TableDefinition tableDefinition) { var sqlCommand = new PgSqlCommand(); TableDefinition keyDefinition = new TableDefinition(); sqlCommand.AppendCommand($"INSERT INTO {String.Join(", ", _intoDestination.GetSqlCommand(tableDefinition).Command)}"); if (_intoColumns != null) { var intoColumnsComm = _intoColumns.GetSqlCommand(tableDefinition); sqlCommand.AppendCommandLine($"{Environment.NewLine}\t({intoColumnsComm.Command})"); _intoColumns._columns.ForEach(c => { var col = tableDefinition?.GetColumnBuilderByDbName(c._name); if (col == null) { keyDefinition.AddColumn(new ColumnBuilder().SetDbName(c._name)); } else { keyDefinition.AddColumn(col); } }); } if (_valueClauses.Any()) { sqlCommand.AppendCommandLine($"VALUES"); foreach (var valuesClause in _valueClauses) { if (valuesClause is NamedValues namedValues) { var valuesComm = namedValues.GetSqlCommand(keyDefinition); sqlCommand.AppendCommandLine($"\t({valuesComm.Command}),", valuesComm.Parameters); } else if (valuesClause is PositionedValues) { var valuesComm = valuesClause.GetSqlCommand(keyDefinition); sqlCommand.AppendCommandLine($"\t({valuesComm.Command}),", valuesComm.Parameters); } } sqlCommand.Command = sqlCommand.Command.TrimEnd($",{Environment.NewLine}".ToCharArray()) + Environment.NewLine; } if (_onConflict != null) { var onConflict = _onConflict.GetSqlCommand(tableDefinition); sqlCommand.AppendCommandLine(onConflict.Command, onConflict.Parameters); } if (_returningClause != null) { sqlCommand.AppendCommand($"RETURNING {_returningClause.GetSqlCommand(tableDefinition).Command}"); } return(sqlCommand); }