public virtual string BuildDeleteByIdScript(TableMold table, string idParameterName) { if (table == null) { throw new ArgumentNullException(nameof(table)); } if (idParameterName == null) { throw new ArgumentNullException(nameof(idParameterName)); } var sb = new StringBuilder(); var decoratedTableName = this.Dialect.DecorateIdentifier( DbIdentifierType.Table, table.Name, this.CurrentOpeningIdentifierDelimiter); var decoratedIdColumnName = this.Dialect.DecorateIdentifier( DbIdentifierType.Column, table.GetPrimaryKeyColumn().Name, this.CurrentOpeningIdentifierDelimiter); sb.Append($"DELETE FROM {decoratedTableName} WHERE {decoratedIdColumnName} = @{idParameterName}"); var sql = sb.ToString(); return(sql); }
public virtual string BuildSelectByIdScript(TableMold table, string idParameterName) { var sb = new StringBuilder(); var decoratedTableName = this.Dialect.DecorateIdentifier( DbIdentifierType.Table, table.Name, this.CurrentOpeningIdentifierDelimiter); sb.AppendLine($"SELECT"); for (var i = 0; i < table.Columns.Count; i++) { var column = table.Columns[i]; var decoratedColumnName = this.Dialect.DecorateIdentifier( DbIdentifierType.Column, column.Name, this.CurrentOpeningIdentifierDelimiter); sb.Append($" {decoratedColumnName}"); if (i < table.Columns.Count - 1) { sb.AppendLine(","); } } sb.AppendLine(); sb.AppendLine($"FROM {decoratedTableName}"); sb.AppendLine("WHERE"); var decoratedIdColumnName = this.Dialect.DecorateIdentifier( DbIdentifierType.Column, table.GetPrimaryKeyColumn().Name, this.CurrentOpeningIdentifierDelimiter); sb.Append($" {decoratedIdColumnName} = @{idParameterName}"); var sql = sb.ToString(); return(sql); }
public virtual string BuildUpdateScript( TableMold table, IReadOnlyDictionary <string, string> columnToParameterMappings) { if (table == null) { throw new ArgumentNullException(nameof(table)); } if (columnToParameterMappings == null) { throw new ArgumentNullException(nameof(columnToParameterMappings)); } if (columnToParameterMappings.Count == 0) { throw new ArgumentException($"'{nameof(columnToParameterMappings)}' must not be empty."); } var sb = new StringBuilder(); var decoratedTableName = this.Dialect.DecorateIdentifier( DbIdentifierType.Table, table.Name, this.CurrentOpeningIdentifierDelimiter); sb.AppendLine($"UPDATE {decoratedTableName} SET"); var idColumnName = table.GetPrimaryKeyColumn().Name.ToLowerInvariant(); var decoratedIdColumnName = this.Dialect.DecorateIdentifier( DbIdentifierType.Column, idColumnName, this.CurrentOpeningIdentifierDelimiter); var idParameterName = columnToParameterMappings[idColumnName]; var columnNamesToUpdate = columnToParameterMappings.Keys.Except(new[] { idColumnName }).ToList(); for (var i = 0; i < columnNamesToUpdate.Count; i++) { var columnName = columnNamesToUpdate[i]; var decoratedColumnName = this.Dialect.DecorateIdentifier( DbIdentifierType.Column, columnName, this.CurrentOpeningIdentifierDelimiter); var parameterName = columnToParameterMappings[columnName]; sb.Append($" {decoratedColumnName} = @{parameterName}"); if (i < columnNamesToUpdate.Count - 1) { sb.AppendLine(","); } } sb.AppendLine(); sb.Append($"WHERE {decoratedIdColumnName} = @{idParameterName}"); var sql = sb.ToString(); return(sql); }