public override string Generate(Expressions.InsertDataExpression expression) { var sb = new StringBuilder(); foreach (var row in expression.Rows) { var columnList = row.Aggregate(new StringBuilder(), (acc, rowVal) => { var accumulator = acc.Length == 0 ? string.Empty : ", "; return(acc.AppendFormat("{0}{1}", accumulator, Quoter.QuoteColumnName(rowVal.Key))); }); var dataList = row.Aggregate(new StringBuilder(), (acc, rowVal) => { var accumulator = acc.Length == 0 ? string.Empty : ", "; return(acc.AppendFormat("{0}{1}", accumulator, Quoter.QuoteValue(rowVal.Value))); }); var separator = sb.Length == 0 ? string.Empty : " "; sb.AppendFormat( "{0}INSERT INTO {1} ({2}) VALUES ({3})", separator, Quoter.QuoteTableName(expression.TableName, expression.SchemaName), columnList, dataList); } return(sb.ToString()); }
public override void Process(Expressions.InsertDataExpression expression) { truncator.Truncate(expression); CheckTable(expression.TableName); expression.Rows.ForEach(x => x.ForEach(y => CheckColumn(expression.TableName, y.Key))); RegisterExpression(expression, typeof(InsertDataExpression)); InternalProcess(Generator.Generate(expression)); }
public override void Process(Expressions.InsertDataExpression expression) { truncator.Truncate(expression); CheckTable(expression.TableName); expression.Rows.ForEach(x => x.ForEach(y => CheckColumn(expression.TableName, y.Key))); var subExpression = new InsertDataExpression() { SchemaName = expression.SchemaName, TableName = expression.TableName }; foreach (var row in expression.Rows) { subExpression.Rows.Clear(); subExpression.Rows.Add(row); InternalProcess(Generator.Generate(subExpression)); } }
public void Process(Expressions.InsertDataExpression expression) { Process(Generator.Generate(expression)); }