@@ -112,32 +112,35 @@ public static class OrmLiteConverterExtensions
112112 {
113113 public static object ConvertNumber ( this IOrmLiteConverter converter , Type toIntegerType , object value )
114114 {
115+ if ( value . GetType ( ) == toIntegerType )
116+ return value ;
117+
115118 var typeCode = toIntegerType . GetUnderlyingTypeCode ( ) ;
116119 switch ( typeCode )
117120 {
121+ case TypeCode . Byte :
122+ return Convert . ToByte ( value ) ;
118123 case TypeCode . Int16 :
119- return value is short ? value : Convert . ToInt16 ( value ) ;
124+ return Convert . ToInt16 ( value ) ;
120125 case TypeCode . UInt16 :
121- return value is ushort ? value : Convert . ToUInt16 ( value ) ;
126+ return Convert . ToUInt16 ( value ) ;
122127 case TypeCode . Int32 :
123- return value is int ? value : Convert . ToInt32 ( value ) ;
128+ return Convert . ToInt32 ( value ) ;
124129 case TypeCode . UInt32 :
125- return value is uint ? value : Convert . ToUInt32 ( value ) ;
130+ return Convert . ToUInt32 ( value ) ;
126131 case TypeCode . Int64 :
127- return value is long ? value : Convert . ToInt64 ( value ) ;
132+ return Convert . ToInt64 ( value ) ;
128133 case TypeCode . UInt64 :
129- if ( value is ulong )
130- return value ;
131134 var byteValue = value as byte [ ] ;
132135 if ( byteValue != null )
133136 return OrmLiteUtils . ConvertToULong ( byteValue ) ;
134137 return Convert . ToUInt64 ( value ) ;
135138 case TypeCode . Single :
136- return value is float ? value : Convert . ToSingle ( value ) ;
139+ return Convert . ToSingle ( value ) ;
137140 case TypeCode . Double :
138- return value is double ? value : Convert . ToDouble ( value ) ;
141+ return Convert . ToDouble ( value ) ;
139142 case TypeCode . Decimal :
140- return value is decimal ? value : Convert . ToDecimal ( value ) ;
143+ return Convert . ToDecimal ( value ) ;
141144 }
142145
143146 var convertedValue = converter . DialectProvider . StringSerializer . DeserializeFromString ( value . ToString ( ) , toIntegerType ) ;
0 commit comments