@@ -148,7 +148,7 @@ protected override void SplitBinaryExpression(BinaryExpression expression, Stack
148148 }
149149 }
150150
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 )
152152 {
153153 var sb = new StringBuilder ( ) ;
154154 var fieldAttribute = member . GetCustomAttribute < SearchFieldAttribute > ( ) ;
@@ -157,6 +157,11 @@ private static string BuildEqualityPredicate(MemberInfo member, ConstantExpressi
157157 throw new InvalidOperationException ( "Searches can only be performed on fields marked with a RedisFieldAttribute with the SearchFieldType not set to None" ) ;
158158 }
159159
160+ if ( negated )
161+ {
162+ sb . Append ( "-" ) ;
163+ }
164+
160165 sb . Append ( $ "{ memberStr } :") ;
161166 var searchFieldType = fieldAttribute . SearchFieldType != SearchFieldType . INDEXED
162167 ? fieldAttribute . SearchFieldType
@@ -189,7 +194,7 @@ private string BuildQueryPredicate(ExpressionType expType, MemberExpression memb
189194 ExpressionType . GreaterThanOrEqual => $ "{ memberStr } :[{ constExpression . Value } inf]",
190195 ExpressionType . LessThanOrEqual => $ "{ memberStr } :[-inf { constExpression . Value } ]",
191196 ExpressionType . Equal => BuildEqualityPredicate ( member . Member , constExpression , memberStr ) ,
192- ExpressionType . NotEqual => $ " { memberStr } : -{{{ constExpression.Value}}}" ,
197+ ExpressionType . NotEqual => BuildEqualityPredicate ( member . Member , constExpression , memberStr , true ) ,
193198 _ => string . Empty
194199 } ;
195200 return queryPredicate ;
0 commit comments