如何在 OData 中测试位

How to test bit in OData

OData 不包含任何位操作运算符。

有没有办法创建一个等价于

的$filter
column & mask = mask
column & mask = 0

使用可用的 odata 运算符? 加、减、div、乘、mod、负、圆、底、顶

在我的例子中mask只能包含一位

我的一个想法是声明一个通用的 "flags" 枚举(例如 Bits.Bit1、Bits.Bit2)然后使用 cast + has 但不知道是否它有效。

无法通过 OData v4 接口测试位 on/off 的整数。

A flags 枚举工作正常,但不能将整数转换为枚举。 IE。您必须将该列公开为元数据中的枚举。

如果您只需要检查实体枚举属性是否包含任何 [Flags] 值,则可以使用 'has' 运算符。

http://docs.oasis-open.org/odata/odata/v4.0/cs02/part2-url-conventions/odata-v4.0-cs02-part2-url-conventions.html#_Toc372793313