2014-02-06 4 views
0

Я хотел бы сделать запрос OData где фильтр на булевой колонке, как это:Как сделать фильтр запроса OData = булево

Пример:

IsVisible != true (or IsVisible != false). 

Теперь я знаю, что в OData это будет «IsVisible ne» true ». Если IsVisible имеет значение null, то это «ne true» не возвращает нулевые значения IsVisible (это то, что я хочу). Вместо этого он просто возвращает значения для IsVisible == true.

Я знаю, что я могу получить записи, которые я хочу делать что-то вроде этого:

IsVisible == null (IsVisible eq 'null'). 

Вопрос заключается в следующем:

Как я могу сделать OData вернуть IsVisible == 'true' AND IsVisible == 'null', когда я фильтрую IsVisible! = false (IsVisible ne 'false')?

+2

Есть ли причина, по которой вы не можете вызвать $ filter = IsVisible + eq + true + или + IsVisible + eq + null? – Schandlich

ответ

0

Глядя на тег, который вы назначили на вопрос, я бы указал, что на самом деле это не логическая логика, а three-valued logic. Реализации таких моделей должны обязательно делать произвольный выбор в отношении их конструкций, а в случае OData кажется, что «то, что не является ложным, должно быть истинным».

Я полагаю, что это отчасти потому, что больше людей путают иначе, а отчасти потому, что большинство других реализаций работают так же.

Насколько я знаю, для вашего прецедента нет ярлыка (вы должны явно проверить оба условия).

Смежные вопросы