Commit 1575f58
committed
Add parenthesis on filter
When combining several filters by calling Filter() multiple times, they will be joined by "and" which is "fine".
The issues comes when there's an or in one of the filters, which will produce unexpected results.
e.g.
Filter(x => x.Foo == "some string")
Filter(x => x.Bar == 1 || x.Bar == 2 )
Should be:
"(Foo eq 'some string') and (Bar eq 1 or Bar eq 2)"
But will be:
"Foo eq 'some string' and Bar eq 1 or Bar eq 2"1 parent 339874f commit 1575f58
2 files changed
Lines changed: 27 additions & 3 deletions
File tree
- src/OData.QueryBuilder/Expressions/Visitors
- test/OData.QueryBuilder.Test
Lines changed: 4 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
277 | 277 | | |
278 | 278 | | |
279 | 279 | | |
280 | | - | |
| 280 | + | |
| 281 | + | |
281 | 282 | | |
282 | | - | |
283 | | - | |
| 283 | + | |
| 284 | + | |
284 | 285 | | |
285 | 286 | | |
286 | 287 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1170 | 1170 | | |
1171 | 1171 | | |
1172 | 1172 | | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
1173 | 1196 | | |
1174 | 1197 | | |
1175 | 1198 | | |
| |||
0 commit comments