web-dev-qa-db-ja.com

WebAPI2.2はsubstringof関数をサポートしていません

ODataをサポートするWebAPI2.2サービスがあります。

私のコントローラーには_IQuerable<Entity>_を返すアクションがありますが、すべての関数を許可しても_$filter=substringof_関数を使用できません。

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

http://localhost:49844/Entities/?$filter=substringof('Queen',Name)のようなURLにアクセスしたとき

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

このエラーが表示される理由はありますか?

23
BuddhiP

substringof()V関数であり、contains()V4関数です。

含まれているものを試してください:

$filter=contains(Name,'Queen')
48
Tan Jinfu