Open crackalak opened 2 years ago
I'm a bit late, but I found a way to patch the problem while waiting for real fix. It can be done by placing a "true" in front of your conditions.
var query2 = queryBuilder.For<Test>("mock")
.ByList()
.Filter((x, f, o) => true && (x.Name == "name" || x.Description == "description"), useParenthesis: true);
query2 = query2.Filter((x, f, o) => x.Value == 1, useParenthesis: true);
var items2 = query2.ToDictionary();
var filter2 = items2["$filter"];
I'm a bit late, but I found a way to patch the problem while waiting for real fix. It can be done by placing a "true" in front of your conditions.
var query2 = queryBuilder.For<Test>("mock") .ByList() .Filter((x, f, o) => true && (x.Name == "name" || x.Description == "description"), useParenthesis: true); query2 = query2.Filter((x, f, o) => x.Value == 1, useParenthesis: true); var items2 = query2.ToDictionary(); var filter2 = items2["$filter"];
it worked for me, tthanks man :)
Output (Correct):
(Name eq 'name' or Description eq 'description') and Value eq 1
Output (Incorrect):
Name eq 'name' or Description eq 'description' and Value eq 1
I would expect both outputs to match, should this not be the case?