From d68e68ca8e812022c5ef7dab8a0f320e2f83785e Mon Sep 17 00:00:00 2001 From: Dimitar Georgiev Dimitrov Date: Tue, 23 Dec 2025 14:09:12 +0200 Subject: [PATCH] Allow empty values for numbers and parse string to numbers if needed --- QueryExecutor.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/QueryExecutor.cs b/QueryExecutor.cs index 257a56e..ca35db3 100644 --- a/QueryExecutor.cs +++ b/QueryExecutor.cs @@ -265,6 +265,12 @@ private static Expression GetSearchValue(object? searchValue, Type targetType) } var jsonVal = JsonValue.Create(searchValue); + + if (string.IsNullOrWhiteSpace(jsonVal?.ToString()) && targetType != typeof(string)) + { + return GetEmptyValue(targetType); + } + var valueKind = jsonVal?.GetValueKind(); if (valueKind == null || valueKind == JsonValueKind.Null || valueKind == JsonValueKind.Undefined) { @@ -293,7 +299,7 @@ private static Expression GetSearchValue(object? searchValue, Type targetType) } } - var value = jsonVal.Deserialize(targetType); + var value = jsonVal.Deserialize(targetType, new JsonSerializerOptions { NumberHandling = JsonNumberHandling.AllowReadingFromString }); var convertedValue = Convert.ChangeType(value, nonNullableType, CultureInfo.InvariantCulture); return Expression.Constant(convertedValue, targetType);