Azure移动服务查询不会返回所有行

Ram*_*rma 6 c# windows-phone-8 azure-mobile-services

我的Azure移动服务中有一个名为NameTable的表.当我在我的客户端应用程序(使用Mobile Services SDK的WP8应用程序)中进行下面提到的调用时:

var myTable = GetZumoService().GetTable<NameTable>();
var myList = await myTable.Where(nameInfo => nameInfo.IsTaken == false).ToListAsync();
Run Code Online (Sandbox Code Playgroud)

myList总是只包含50个项目,但我知道表格中有超过400行符合查询条件.

我究竟做错了什么?

car*_*ira 16

默认情况下,服务只会在每次读取操作中返回一定数量的行(50,正如您所注意到的).由于Azure服务中的返回字节数有免费(以及付费成本),因此移动服务具有此默认值.

您可以使用该Take操作请求更多行.但是,在任何给定时间(1000),您可以询问的行数有限制.我们的想法是,您不应该要求表中的所有数据 - 它可能会很多 - 并且在您需要使用SkipTake操作时请求行.

var myTable = GetZumoService().GetTable<NameTable>();
var myList = await myTable.Take(500)
                          .Where(nameInfo => nameInfo.IsTaken == false)
                          .ToListAsync();
Run Code Online (Sandbox Code Playgroud)


NER*_*808 8

我发现这还不够.您需要使用以下[EnableQuery]属性装饰Azure Mobile Service控制器方法:

[EnableQuery(PageSize=1000)]
public IQueryable<MyDataTable> GetOneThousandRecords()
{
    return Query()
}
Run Code Online (Sandbox Code Playgroud)