OData.Net不允许在$ filter中包含

Fel*_*lix 3 asp.net odata visual-studio-2015

我到处读到你应该使用的OData v3,你应该使用substringof()v4 contains().我从NuGet安装了版本为5.5.1的 Microsoft.AspNet.WebApi.OData .

奇怪的是,contains()不起作用.我收到以下错误:

{"message":"URI中指定的查询无效.找到名为'contains'的未知函数.这也可能是导航属性上的键查找,这是不允许的." ...}

相反,substringof()工作正常.它应该是那样的吗?

小智 5

NuGet包版本是5.5.1,但这并不是指支持的OData版本.由于OData v1-3和OData v4有一些不兼容的更改,因此WebAPI OData包有两个版本:

ASP.NET Web API 2.2 for OData v1-3

包ID:Microsoft.AspNet.WebApi.OData,版本:5.5.1

适用于OData v4的ASP.NET Web API 2.2

包ID:Microsoft.AspNet.OData,版本:5.6.0

所以你现在正在使用OData v3并且错误消息是正确的,在OData v3中没有定义contains()