示例#1
0
        /// <summary>
        ///     Generates a <see cref="RawSqlCommand" /> for the batch.
        /// </summary>
        /// <returns> The command. </returns>
        protected virtual RawSqlCommand CreateStoreCommand()
        {
            var commandBuilder = _commandBuilderFactory
                                 .Create()
                                 .Append(GetCommandText());

            var parameterValues = new Dictionary <string, object>(GetParameterCount());

            foreach (var columnModification in ModificationCommands.SelectMany(t => t.ColumnModifications))
            {
                if (columnModification.UseCurrentValueParameter)
                {
                    commandBuilder.AddParameter(
                        columnModification.ParameterName,
                        SqlGenerationHelper.GenerateParameterName(columnModification.ParameterName),
                        columnModification.Property);

                    parameterValues.Add(
                        columnModification.ParameterName,
                        columnModification.Value);
                }

                if (columnModification.UseOriginalValueParameter)
                {
                    commandBuilder.AddParameter(
                        columnModification.OriginalParameterName,
                        SqlGenerationHelper.GenerateParameterName(columnModification.OriginalParameterName),
                        columnModification.Property);

                    parameterValues.Add(
                        columnModification.OriginalParameterName,
                        columnModification.OriginalValue);
                }
            }

            return(new RawSqlCommand(
                       commandBuilder.Build(),
                       parameterValues));
        }
示例#2
0
        /// <summary>
        ///     Generates a <see cref="RawSqlCommand" /> for the batch.
        /// </summary>
        /// <returns> The command. </returns>
        protected virtual RawSqlCommand CreateStoreCommand()
        {
            var commandBuilder = _commandBuilderFactory
                                 .Create()
                                 .Append(GetCommandText());

            var parameterValues = new Dictionary <string, object>(GetParameterCount());

            // ReSharper disable once ForCanBeConvertedToForeach
            for (var commandIndex = 0; commandIndex < ModificationCommands.Count; commandIndex++)
            {
                var command = ModificationCommands[commandIndex];
                // ReSharper disable once ForCanBeConvertedToForeach
                for (var columnIndex = 0; columnIndex < command.ColumnModifications.Count; columnIndex++)
                {
                    var columnModification = command.ColumnModifications[columnIndex];
                    if (columnModification.UseCurrentValueParameter)
                    {
                        commandBuilder.AddParameter(columnModification.ParameterName,
                                                    SqlGenerationHelper.GenerateParameterName(columnModification.ParameterName),
                                                    columnModification.Property);

                        parameterValues.Add(columnModification.ParameterName, columnModification.Value);
                    }

                    if (columnModification.UseOriginalValueParameter)
                    {
                        commandBuilder.AddParameter(columnModification.OriginalParameterName,
                                                    SqlGenerationHelper.GenerateParameterName(columnModification.OriginalParameterName),
                                                    columnModification.Property);

                        parameterValues.Add(columnModification.OriginalParameterName, columnModification.OriginalValue);
                    }
                }
            }

            return(new RawSqlCommand(commandBuilder.Build(), parameterValues));
        }
示例#3
0
        protected override RawSqlCommand CreateStoreCommand()
        {
            var commandBuilder = _commandBuilderFactory
                                 .Create()
                                 .Append(GetCommandText());

            var parameterValues = new Dictionary <string, object>(GetParameterCount());

            for (var commandIndex = 0; commandIndex < ModificationCommands.Count; commandIndex++)
            {
                var command = ModificationCommands[commandIndex];

                foreach (var columnModification in command.ColumnModifications
                         .OrderBy(cm => cm.IsCondition))
                {
                    if (columnModification.UseCurrentValueParameter)
                    {
                        commandBuilder.AddParameter(columnModification.ParameterName,
                                                    SqlGenerationHelper.GenerateParameterName(columnModification.ParameterName),
                                                    columnModification.Property);

                        parameterValues.Add(columnModification.ParameterName, columnModification.Value);
                    }

                    if (columnModification.UseOriginalValueParameter)
                    {
                        commandBuilder.AddParameter(columnModification.OriginalParameterName,
                                                    SqlGenerationHelper.GenerateParameterName(columnModification.OriginalParameterName),
                                                    columnModification.Property);

                        parameterValues.Add(columnModification.OriginalParameterName, columnModification.OriginalValue);
                    }
                }
            }

            return(new RawSqlCommand(commandBuilder.Build(), parameterValues));
        }