コード例 #1
0
        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());
        }
コード例 #2
0
 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));
 }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
 public void Process(Expressions.InsertDataExpression expression)
 {
     Process(Generator.Generate(expression));
 }