@@ -67,88 +67,6 @@ internal static IDataReader ExecReader(this IDbCommand dbCmd, string sql, IEnume
6767 return dbCmd . ExecuteReader ( ) ;
6868 }
6969
70- public static GetValueDelegate GetValueFn < T > ( IDataRecord reader )
71- {
72- var nullableType = Nullable . GetUnderlyingType ( typeof ( T ) ) ;
73-
74- if ( nullableType == null )
75- {
76- var typeCode = Type . GetTypeCode ( typeof ( T ) ) ;
77- switch ( typeCode )
78- {
79- case TypeCode . String :
80- return reader . GetString ;
81- case TypeCode . Boolean :
82- return i => reader . GetBoolean ( i ) ;
83- case TypeCode . Int16 :
84- case TypeCode . Int32 :
85- case TypeCode . Int64 :
86- case TypeCode . Single :
87- case TypeCode . Double :
88- case TypeCode . Decimal :
89- return i =>
90- {
91- var value = reader . GetValue ( i ) ;
92- if ( value is T )
93- return value ;
94-
95- switch ( typeCode )
96- {
97- case TypeCode . Int16 :
98- return Convert . ToInt16 ( value ) ;
99- case TypeCode . Int32 :
100- return Convert . ToInt32 ( value ) ;
101- case TypeCode . Int64 :
102- return Convert . ToInt64 ( value ) ;
103- case TypeCode . Single :
104- return Convert . ToSingle ( value ) ;
105- case TypeCode . Double :
106- return Convert . ToDouble ( value ) ;
107- case TypeCode . Decimal :
108- return Convert . ToDecimal ( value ) ;
109- default :
110- return value ;
111- }
112- } ;
113- case TypeCode . DateTime :
114- return i => reader . GetDateTime ( i ) ;
115- }
116-
117- if ( typeof ( T ) == typeof ( Guid ) )
118- return OrmLiteConfig . DialectProvider . GetReaderGuidDelegate ( reader ) ;
119- }
120- else
121- {
122- var typeCode = Type . GetTypeCode ( nullableType ) ;
123- switch ( typeCode )
124- {
125- case TypeCode . String :
126- return reader . GetString ;
127- case TypeCode . Boolean :
128- return i => reader . IsDBNull ( i ) ? null : ( bool ? ) reader . GetBoolean ( i ) ;
129- case TypeCode . Int16 :
130- return i => reader . IsDBNull ( i ) ? null : ( short ? ) reader . GetInt16 ( i ) ;
131- case TypeCode . Int32 :
132- return i => reader . IsDBNull ( i ) ? null : ( int ? ) reader . GetInt32 ( i ) ;
133- case TypeCode . Int64 :
134- return i => reader . IsDBNull ( i ) ? null : ( long ? ) reader . GetInt64 ( i ) ;
135- case TypeCode . Single :
136- return i => reader . IsDBNull ( i ) ? null : ( float ? ) reader . GetFloat ( i ) ;
137- case TypeCode . Double :
138- return i => reader . IsDBNull ( i ) ? null : ( double ? ) reader . GetDouble ( i ) ;
139- case TypeCode . Decimal :
140- return i => reader . IsDBNull ( i ) ? null : ( decimal ? ) reader . GetDecimal ( i ) ;
141- case TypeCode . DateTime :
142- return i => reader . IsDBNull ( i ) ? null : ( DateTime ? ) reader . GetDateTime ( i ) ;
143- }
144-
145- if ( typeof ( T ) == typeof ( Guid ) )
146- return OrmLiteConfig . DialectProvider . GetReaderNullableGuidDelegate ( reader ) ;
147- }
148-
149- return reader . GetValue ;
150- }
151-
15270 public static bool IsScalar < T > ( )
15371 {
15472 return typeof ( T ) . IsValueType || typeof ( T ) == typeof ( string ) ;
@@ -654,7 +572,7 @@ internal static List<T> ColumnFmt<T>(this IDbCommand dbCmd, string sql, params o
654572 internal static List < T > Column < T > ( this IDataReader reader )
655573 {
656574 var columValues = new List < T > ( ) ;
657- var getValueFn = GetValueFn < T > ( reader ) ;
575+ var getValueFn = OrmLiteConfig . DialectProvider . GetValueFn < T > ( reader ) ;
658576 while ( reader . Read ( ) )
659577 {
660578 var value = getValueFn ( 0 ) ;
@@ -681,7 +599,7 @@ internal static HashSet<T> ColumnDistinctFmt<T>(this IDbCommand dbCmd, string sq
681599 internal static HashSet < T > ColumnDistinct < T > ( this IDataReader reader )
682600 {
683601 var columValues = new HashSet < T > ( ) ;
684- var getValueFn = GetValueFn < T > ( reader ) ;
602+ var getValueFn = OrmLiteConfig . DialectProvider . GetValueFn < T > ( reader ) ;
685603 while ( reader . Read ( ) )
686604 {
687605 var value = getValueFn ( 0 ) ;
@@ -709,8 +627,8 @@ internal static Dictionary<K, List<V>> Lookup<K, V>(this IDataReader reader)
709627 {
710628 var lookup = new Dictionary < K , List < V > > ( ) ;
711629
712- var getKeyFn = GetValueFn < K > ( reader ) ;
713- var getValueFn = GetValueFn < V > ( reader ) ;
630+ var getKeyFn = OrmLiteConfig . DialectProvider . GetValueFn < K > ( reader ) ;
631+ var getValueFn = OrmLiteConfig . DialectProvider . GetValueFn < V > ( reader ) ;
714632 while ( reader . Read ( ) )
715633 {
716634 var key = ( K ) getKeyFn ( 0 ) ;
@@ -744,8 +662,8 @@ internal static Dictionary<K, V> Dictionary<K, V>(this IDataReader reader)
744662 {
745663 var map = new Dictionary < K , V > ( ) ;
746664
747- var getKeyFn = GetValueFn < K > ( reader ) ;
748- var getValueFn = GetValueFn < V > ( reader ) ;
665+ var getKeyFn = OrmLiteConfig . DialectProvider . GetValueFn < K > ( reader ) ;
666+ var getValueFn = OrmLiteConfig . DialectProvider . GetValueFn < V > ( reader ) ;
749667 while ( reader . Read ( ) )
750668 {
751669 var key = ( K ) getKeyFn ( 0 ) ;
0 commit comments