diff --git a/QueryKit/FilterParser.cs b/QueryKit/FilterParser.cs index 8b3fe31..2b5c359 100644 --- a/QueryKit/FilterParser.cs +++ b/QueryKit/FilterParser.cs @@ -156,7 +156,6 @@ from closingBracket in Parse.Char(']') { typeof(ulong), value => ulong.Parse(value, CultureInfo.InvariantCulture) }, { typeof(ushort), value => ushort.Parse(value, CultureInfo.InvariantCulture) }, { typeof(sbyte), value => sbyte.Parse(value, CultureInfo.InvariantCulture) }, - // { typeof(Enum), value => Enum.Parse(typeof(T), value) }, }; private static Expression CreateRightExpr(Expression leftExpr, string right) @@ -305,6 +304,12 @@ private static Expression CreateRightExprFromType(Type leftExprType, string righ return Expression.Constant(convertedValue, leftExprType); } + if (targetType.IsEnum) + { + var enumValue = Enum.Parse(targetType, right); + return Expression.Constant(enumValue, targetType); + } + throw new InvalidOperationException($"Unsupported value '{right}' for type '{targetType.Name}'"); }