Skip to content

Commit

Permalink
More robust Enum conversion to underlying value
Browse files Browse the repository at this point in the history
  • Loading branch information
danielgindi committed Jul 24, 2019
1 parent 49e77df commit e07da42
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
10 changes: 10 additions & 0 deletions dg.Sql/Connector/ConnectorBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand Down
8 changes: 0 additions & 8 deletions dg.Sql/Sql/Query/Query.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}
Expand Down

0 comments on commit e07da42

Please sign in to comment.