public static string[] AddArrayParameter <T, TDynamicParameters>(this IDatabaseParameterHelper databaseParameterHelper, TDynamicParameters parameters, string paramName, IEnumerable <T> enumerable) { var array = databaseParameterHelper.ToParameterArrayValue(enumerable); if (databaseParameterHelper.DatabaseType != SupportedDatabaseTypes.Oracle) { var parameterNames = new List <string>(); for (var i = 0; i < array.Length; i++) { var parameterName = $"{paramName}{i}"; parameterNames.Add($"{databaseParameterHelper.GetParameterPrefix()}{parameterName}"); parameters.Add(parameterName, array.GetValue(i)); } return(parameterNames.ToArray()); } parameters.Add(paramName, array); return(new [] { $"{databaseParameterHelper.GetParameterPrefix()}{paramName}" }); }
public void AddArrayParameter <T>(string paramName, IEnumerable <T> enumerable, ref string sql) { var array = DataParameterHelperField.ToParameterArrayValue(enumerable); if (DataParameterHelperField.DatabaseType == SupportedDatabaseTypes.Postgres) { var parameterNames = new List <string>(); for (var i = 0; i < array.Length; i++) { var parameterName = $"{paramName}{i}"; parameterNames.Add(parameterName); Add(parameterName, array.GetValue(i)); } sql = sql.Replace(DataParameterHelperField.WithParameters(paramName), $"({string.Join(",", DataParameterHelperField.WithParameters(parameterNames.ToArray()))})"); } else { DynamicParameters.Add(paramName, array); } }