Commit 4e2f7fb7 authored by Guilherme Duarte's avatar Guilherme Duarte

Added basic support for customer type maps in collection parameters

Added LookupDbType on the first iteration of the PackListParameters
method
parent a540d7b1
...@@ -2759,9 +2759,14 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj ...@@ -2759,9 +2759,14 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj
var count = 0; var count = 0;
bool isString = value is IEnumerable<string>; bool isString = value is IEnumerable<string>;
bool isDbString = value is IEnumerable<DbString>; bool isDbString = value is IEnumerable<DbString>;
DbType dbType = 0;
foreach (var item in list) foreach (var item in list)
{ {
count++; if (count++ == 0)
{
ITypeHandler handler;
dbType = LookupDbType(item.GetType(), "", true, out handler);
}
var listParam = command.CreateParameter(); var listParam = command.CreateParameter();
listParam.ParameterName = namePrefix + count; listParam.ParameterName = namePrefix + count;
if (isString) if (isString)
...@@ -2780,6 +2785,10 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj ...@@ -2780,6 +2785,10 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj
else else
{ {
listParam.Value = SanitizeParameterValue(item); listParam.Value = SanitizeParameterValue(item);
if (listParam.DbType != dbType)
{
listParam.DbType = dbType;
}
command.Parameters.Add(listParam); command.Parameters.Add(listParam);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment