예제 #1
0
        /// <param name="sqlColumnName">Используется только для ошибок.</param>
        /// <exception cref="MicroOrmException"/>
        /// <returns>CLR значение.</returns>
        public object?ConvertSqlToClrValue(object sqlRawValue, Type sqlColumnType, string sqlColumnName)
        {
            object?sqlValue = SqlTypeConverter.ConvertNullableRawSqlType(sqlRawValue, sqlColumnName, IsNonNullable, PropertyName, "property");

            if (TypeConverter != null)
            {
                if (TypeConverter.CanConvertFrom(sqlColumnType))
                {
                    return(TypeConverter.ConvertFrom(sqlValue));
                }
                else
                // Безусловно вызываем конвертацию.
                {
                    return(TypeConverter.ConvertTo(sqlValue, MemberType));
                }
            }
            else
            {
                return(SqlTypeConverter.ConvertSqlToClrType(sqlValue, sqlColumnType, sqlColumnName, MemberType));
            }
        }