Подтвердить что ты не робот

WebAPI 2.2 не поддерживает функцию подстроки

У меня есть служба WebAPI 2.2 с поддержкой OData.

Мой контроллер имеет действие, которое возвращает IQuerable<Entity>, но я не могу использовать функцию $filter=substringof, даже если я разрешаю все функции.

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

Когда я нахожу URL-адрес, например http://localhost:49844/Entities/?$filter=substringof('Queen',Name)

Я получаю сообщение об ошибке, поскольку подстрока не допускается.

{
"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",

Любая идея, почему я могу видеть эту ошибку?

4b9b3361

Ответ 1

substringof() является V3, а contains() является V4.

Try содержит:

$filter=contains(Name,'Queen')