@@ -148,7 +148,7 @@ protected override void SplitBinaryExpression(BinaryExpression expression, Stack
148
148
}
149
149
}
150
150
151
- private static string BuildEqualityPredicate ( MemberInfo member , ConstantExpression expression , string memberStr )
151
+ private static string BuildEqualityPredicate ( MemberInfo member , ConstantExpression expression , string memberStr , bool negated = false )
152
152
{
153
153
var sb = new StringBuilder ( ) ;
154
154
var fieldAttribute = member . GetCustomAttribute < SearchFieldAttribute > ( ) ;
@@ -157,6 +157,11 @@ private static string BuildEqualityPredicate(MemberInfo member, ConstantExpressi
157
157
throw new InvalidOperationException ( "Searches can only be performed on fields marked with a RedisFieldAttribute with the SearchFieldType not set to None" ) ;
158
158
}
159
159
160
+ if ( negated )
161
+ {
162
+ sb . Append ( "-" ) ;
163
+ }
164
+
160
165
sb . Append ( $ "{ memberStr } :") ;
161
166
var searchFieldType = fieldAttribute . SearchFieldType != SearchFieldType . INDEXED
162
167
? fieldAttribute . SearchFieldType
@@ -189,7 +194,7 @@ private string BuildQueryPredicate(ExpressionType expType, MemberExpression memb
189
194
ExpressionType . GreaterThanOrEqual => $ "{ memberStr } :[{ constExpression . Value } inf]",
190
195
ExpressionType . LessThanOrEqual => $ "{ memberStr } :[-inf { constExpression . Value } ]",
191
196
ExpressionType . Equal => BuildEqualityPredicate ( member . Member , constExpression , memberStr ) ,
192
- ExpressionType . NotEqual => $ " { memberStr } : -{{{ constExpression.Value}}}" ,
197
+ ExpressionType . NotEqual => BuildEqualityPredicate ( member . Member , constExpression , memberStr , true ) ,
193
198
_ => string . Empty
194
199
} ;
195
200
return queryPredicate ;
0 commit comments