/// <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)); }
/// <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)); }
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)); }