Commit 6e277406 authored by David Glassborow's avatar David Glassborow Committed by Nick Craver

Make SqlMapper.Parse consistent with QueryImpl, closes #1111

parent 5189fcd4
...@@ -15,10 +15,20 @@ public static IEnumerable<T> Parse<T>(this IDataReader reader) ...@@ -15,10 +15,20 @@ public static IEnumerable<T> Parse<T>(this IDataReader reader)
{ {
if (reader.Read()) if (reader.Read())
{ {
var deser = GetDeserializer(typeof(T), reader, 0, -1, false); var effectiveType = typeof(T);
var deser = GetDeserializer(effectiveType, reader, 0, -1, false);
var convertToType = Nullable.GetUnderlyingType(effectiveType) ?? effectiveType;
do do
{ {
yield return (T)deser(reader); object val = deser(reader);
if (val == null || val is T)
{
yield return (T)val;
}
else
{
yield return (T)Convert.ChangeType(val, convertToType, System.Globalization.CultureInfo.InvariantCulture);
}
} while (reader.Read()); } while (reader.Read());
} }
} }
......
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