OData:使用嵌入的表/实体集进行查询?

OData:使用嵌入的表/实体集进行查询?,odata,modeling,Odata,Modeling,我在建模OData服务时遇到一些问题。我的要求是,我想查询由单个值和/或范围列表设置的实体。 示例:给出ID为3、6、8、14和20之间或35和77之间的实体集中的所有实体 这怎么可能是模型呢? 我考虑过函数导入,但我不确定是否可以将实体集(=值/范围列表)用作那里的参数 提前感谢您的帮助 您应该能够使用OData的内置过滤机制,即$filter查询字符串参数来实现这一点 例如,请求URI如下所示: http://.../MyService.svc/EntitySet?$filter=ID eq

我在建模OData服务时遇到一些问题。我的要求是,我想查询由单个值和/或范围列表设置的实体。 示例:给出ID为3、6、8、14和20之间或35和77之间的实体集中的所有实体

这怎么可能是模型呢? 我考虑过函数导入,但我不确定是否可以将实体集(=值/范围列表)用作那里的参数


提前感谢您的帮助

您应该能够使用OData的内置过滤机制,即
$filter
查询字符串参数来实现这一点

例如,请求URI如下所示:


http://.../MyService.svc/EntitySet?$filter=ID eq 3或ID eq 6或ID eq 8或(ID ge 14和ID le 20)或(ID ge 35和ID le 77)

简单但高效;-)谢谢一个后续问题:$filter是否也可用于函数导入或仅用于实体集?还有一个问题:我希望查询包括ID介于1和40之间、包含ID>=60、排除ID 17和排除ID介于99和105之间的所有实体。这看起来怎么样?谜团已经解开:$filter=(IDGE1和IDLE40)或IDGE60)和IDNE17,而不是(IDGE99和IDLE105)