diff --git a/dg.Sql/Connector/ConnectorBase.cs b/dg.Sql/Connector/ConnectorBase.cs index 2af4fc90..16e98ef2 100644 --- a/dg.Sql/Connector/ConnectorBase.cs +++ b/dg.Sql/Connector/ConnectorBase.cs @@ -474,6 +474,16 @@ public virtual string PrepareValue(object value, Query relatedQuery = null) }); return sb.ToString(); } + else if (value.GetType().BaseType.Name == @"Enum") + { + var underlyingValue = Convert.ChangeType(value, Enum.GetUnderlyingType(value.GetType())); + if (underlyingValue is string || underlyingValue is char) + { + return PrepareValue(underlyingValue.ToString()); + } + + return underlyingValue.ToString(); + } else return value.ToString(); } diff --git a/dg.Sql/Sql/Query/Query.cs b/dg.Sql/Sql/Query/Query.cs index 07fc5454..2745edae 100644 --- a/dg.Sql/Sql/Query/Query.cs +++ b/dg.Sql/Sql/Query/Query.cs @@ -442,14 +442,6 @@ public static void PrepareColumnValue(TableSchema.Column columnDefinition, objec ((Geometry)value).BuildValue(outputBuilder, connection); return; } - else if (value.GetType().BaseType.Name == @"Enum") - { - try - { - value = (int)value; - } - catch { } - } outputBuilder.Append(connection.PrepareValue(value, relatedQuery)); }