尝试在 WebApi 2 中使用 OData 过滤器。
但它似乎不适用于开放类型(动态属性)。
接收错误:
FilterQueryValidator 不支持验证 CollectionOpenPropertyAccess 类型的 OData QueryNode。
服务器返回包含 Id 和 Properties 的对象数组,并且在 Properties 中我有包含字符串数组的属性。我想对这个数组进行过滤。我确定我的请求 url 没问题,因为它适用于普通数据。我认为问题出在开放类型中。我发现这个问题非常相似:https : //stackoverflow.com/questions/33427594/filter-by-datetime-with-odata-in-dictionary/33442032,但没有有答案吗?
使用:Odata v4 和 WebApi2
示例服务器结果:
{
"Id": 1,
"Context@odata.type": "#Collection(String)",
"Context": [
"Context1", "Context2"
]
}
示例 http 请求:
http://localhost/API/odata/GetItems(id=30045)?$count=true&$filter=Context%2Fany(c:+c+eq+%27Context1%27)&$format=json&$top=5