6

AzureモバイルサービスにNameTableというテーブルがあります。クライアントアプリ(モバイルサービスSDKを使用するWP8アプリ)で以下の呼び出しを行うと、次のようになります。

var myTable = GetZumoService().GetTable<NameTable>();
var myList = await myTable.Where(nameInfo => nameInfo.IsTaken == false).ToListAsync();

クエリ条件に一致するテーブルに400を超える行があることはわかっていますが、myListには常に50個のアイテムしか含まれていません。

私は何が間違っているのですか?

4

3 に答える 3

16

デフォルトでは、サービスは各読み取り操作で特定の数の行のみを返します(お気づきのとおり、50行)。Azureサービスで無料の場合に返されるバイト数(および有料のもののコスト)には割り当てがあるため、モバイルサービスにはこのデフォルトがあります。

操作を使用して、さらに行を要求できますTake。ただし、いつでも確認できる行数には制限があります(1000)。アイデアは、テーブル内のすべてのデータを要求するべきではなく(潜在的に大量になる可能性があります)、SkipandTake操作を使用して必要に応じて行を要求するべきではないということです。

var myTable = GetZumoService().GetTable<NameTable>();
var myList = await myTable.Take(500)
                          .Where(nameInfo => nameInfo.IsTaken == false)
                          .ToListAsync();
于 2012-12-30T16:35:00.213 に答える
8

これでは不十分であることがわかりました。[EnableQuery]次のように、AzureMobileServiceコントローラーメソッドを属性で装飾する必要があります。

[EnableQuery(PageSize=1000)]
public IQueryable<MyDataTable> GetOneThousandRecords()
{
    return Query()
}
于 2015-01-23T19:22:20.173 に答える
0

サーバー側の動作のため、次のような簡単なテーブルのスクリプトを変更する必要がありました。MSDNフォーラム

App Service Editorを使用して、tableName.jsファイルを編集し(tablesディレクトリでtableNameをtablenameに置き換えます)、次のように設定します。table.maxTop = 1000 table.pageSize = 1000を設定して、デフォルトのページサイズを設定することもできます。

table.pageSize=1000を設定します。私のために働いた。

于 2018-05-17T09:09:33.920 に答える