Example #1
0
        /// <summary>
        /// Convierte los enums al tipo subyacente, esto se necesita debido a un error en el Npgsql >= 4.0.0
        /// https://github.com/npgsql/EntityFramework6.Npgsql/issues/105
        /// </summary>
        static object ConvertFromEnum(object value, Type type)
        {
            if (value == null)
            {
                return(null);
            }
            if (type.IsEnum)
            {
                //Convertir el parametro al tipo del enum:
                value = Cast.Cast(type.GetEnumUnderlyingType(), value);
                return(value);
            }

            if (type.IsGenericType && type.GetGenericTypeDefinition() is var nType && nType == typeof(Nullable <>))
            {
                return(ConvertFromEnum(value, type.GetGenericArguments()[0]));
            }

            return(value);
        }