WebAPI 2.2不支持substringof函数

Bud*_*hiP 23 odata asp.net-web-api

我有一个支持OData的WebAPI 2.2服务.

我的控制器有一个返回的动作IQuerable<Entity>,但$filter=substringof即使我允许所有功能,我也无法使用功能.

[Authorize]
public class MyController : ODataController
{
    [EnableQuery(AllowedFunctions=AllowedFunctions.All)]
    public IQueryable<Entity> GetEntities()
    {
      return GetMyQueryable();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我点击像这样的网址时 http://localhost:49844/Entities/?$filter=substringof('Queen',Name)

我得到一个错误,说不允许substringof.

{
"error": {
    "code": "",
    "message": "The query specified in the URI is not valid. An unknown function with name 'substringof' was found. This may also be a function import or a key lookup on a navigation property, which is not allowed.",
    "innererror": {
        "message": "An unknown function with name 'substringof' was found. This may also be a function import or a key lookup on a navigation property, which is not allowed.",
        "type": "Microsoft.OData.Core.ODataException",
Run Code Online (Sandbox Code Playgroud)

知道为什么我会看到这个错误吗?

Tan*_*nfu 48

substringof()V3功能,而contains()V4功能.

试试包含:

$filter=contains(Name,'Queen')
Run Code Online (Sandbox Code Playgroud)

  • substringof()是V3函数,而contains是V4函数.如果包含不起作用,您可以共享错误消息吗? (2认同)