public static (string CommandText, List <IDbDataParameter> Parameters) Obsolete_GetPositionalCommandTextAndParameters(this IDbCommand command, char parameterPrefix = '@') { var namedParameterPrefixPattern = Obsolete_GetNamedParameterPrefixPattern(parameterPrefix); var newParameters = new List <IDbDataParameter>(); var newCommandText = namedParameterPrefixPattern.Replace(command.CommandText, evaluator => { var match = evaluator.Groups[1].Value; var parameter = (from p in command.Parameters.OfType <IDbDataParameter>() where p.ParameterName == match.TrimStart(parameterPrefix) select command.CloneParameter(p)).FirstOrDefault(); if (parameter != null) { parameter.ParameterName = $"{parameter.ParameterName}_{newParameters.Count}"; newParameters.Add(parameter); return("?"); } return(match); }); return(newCommandText, newParameters); }