2016-04-05 11 views
1

サーバ:標準VS 2015ジェネレータで生成されたOdataコントローラ。

// GET: odata/MyEntities 
[EnableQuery(AllowedQueryOptions = AllowedQueryOptions.All)] 
public IQueryable<Models.Odata. MyEntity> GetMyEntities() 
{ 
    return db.MyEntities; 
} 

クライアント:KendoUI

var ds = new kendo.data.HierarchicalDataSource({ 
    type: "odata-v4", 
    transport: { 
    read: { 
     url: "odata/EndPoints", 
     dataType: "json" 
    } 
    }, 
    schema: { 
      model: { 
       id: "Id", 
      } 
     } 
    }); 

が要求:

http://localhost:44444/odata/MyEntities?$format=json - リターンが期待いただきました、 しかし

http://localhost:44444/odata/MyEntities?$format=json&$count=trueは - エラーを生成します。

{ 
    "odata.error":{ 
    "code":"","message":{ 
     "lang":"en-US","value":"The query parameter '$count' is not supported." 
    } 
    } 
} 

私はAppStartで標準設定を使用しました。それは何ですか?

+0

なぜ=は真ですか? http://www.odata.org/getting-started/basic-tutorial/#count –

+0

$ countをtrueにすると同じ結果が得られます – idm

+0

これは、どのデータサービスのバージョンが受け継がれていますか? https://msdn.microsoft.com/en-us/library/azure/gg312156.aspx#DetermineDataServiceVersion –

答えて

0

ODataバージョン3のクエリオプションは$inlinecountで、$countではありません。クエリオプションを/$countパスセグメントと混同していて、のクエリオプション$countが混乱しているようです。

リクエストエンティティ自身と一緒にコレクション内のエンティティの合計数、:エンティティのコレクションの

GET http://localhost:44444/odata/MyEntities?$format=json&$inlinecount=allpages 

要求のみ数:

GET http://localhost:44444/odata/MyEntities/$count?$format=json 

OData Version 3.0 Core Protocolを参照してください、セクション10.2.3.6 10.2.5。

+0

Odatav4ジェネレータ、再インストールされたパッケージ、チェック版= 4で再生成されたコントローラ。動作します。ありがとうございます! – idm

+0

恐ろしい! v4にアップグレードすることはできました。ところで、JSONはv4のデフォルトのワイヤフォーマットなので、 '$ format = json'クエリオプションは必要ありません。 – lencharest

関連する問題