コード例 #1
0
        public override string GetQuotedValue(object value, Type fieldType)
        {
            if (value == null)
            {
                return("NULL");
            }

            IOrmLiteConverter converter = null;

            try
            {
                var isEnum = fieldType.IsEnum || value.GetType().IsEnum;
                if (isEnum)
                {
                    return(EnumConverter.ToQuotedString(fieldType, value));
                }

                if (Converters.TryGetValue(fieldType, out converter))
                {
                    return(converter.ToQuotedString(fieldType, value));
                }

                if (fieldType.IsRefType())
                {
                    return(ReferenceTypeConverter.ToQuotedString(fieldType, value));
                }

                if (fieldType.IsValueType())
                {
                    return(ValueTypeConverter.ToQuotedString(fieldType, value));
                }
            }
            catch (Exception ex)
            {
                Log.Error("Error in {0}.ToQuotedString() value '{0}' and Type '{1}'"
                          .Fmt(converter.GetType().Name, value != null ? value.GetType().Name : "undefined", fieldType.Name), ex);
                throw;
            }

            return(ShouldQuoteValue(fieldType)
                    ? GetQuotedValue(value.ToString())
                    : value.ToString());
        }