nested - 错误:“非法查询语法。'/' 之前的段不是实体或复杂类型。”
问题描述
我正在尝试在嵌套$expanded
实体中使用过滤器查询。
例如,我正在使用以下查询。
webservice/Results?$expand=FoodDescriptions&$filter=substringof('Vod', FoodDescriptions/Description)&$format=json
执行此操作时,我收到以下错误
{
"error": {
"code": "",
"message": {
"lang": "en-US",
"value": "Illegal query syntax. Segment before '/' is not an entity or complex type."
}
}
}
我从下面的公共服务示例中得到了这个查询。
https://services.odata.org/V2/Northwind/Northwind.svc/Orders?$expand=Customer&$filter=substringof('Henriette', Customer/ContactName)&$format=json
在这种情况下,我得到了正确的响应,任何人都可以测试它。
有人可以告诉我代码中出现此特定错误的原因是什么吗?
解决方案
您的问题很可能出在 ODataConfig 下 - 您没有FoodDescriptions
设置为实体。
如果你去这里 [https://services.odata.org/V2/Northwind/Northwind.svc/$metadata],你可以找到这一行<EntitySet Name="Customers" EntityType="NorthwindModel.Customer"/>
在您的情况下,您可能只是忘记将FoodDescriptions注册为实体。
推荐阅读
- python - 如何在文本文件中使用 python 增加 empid
- php - 循环之间的睡眠功能在任何循环执行之前运行
- php - 使用模仿原始 mysql_real_escape_string 的函数
- ruby-on-rails - `to_specs':在总共 8 个 gem 中找不到 'railties' (>= 0) (Gem::LoadError)
- sockets - 使用 os.OpenFile() 而不是 net.Listen()
- html - display:inline-block 和伪元素做垂直放置
- ansible - 使用 ansible_facts.packages["zabbix-agent"] 时如何获取软件的版本
- javascript - 显示从下拉框值接收的数据
- unity3d - 为什么我不能在 unity3d 中将组件拖到检查器?
- swift - 如何在 Swift 中将类类型作为函数参数传递?