为什么 ArrayList 只能将 50 个值存入 Azure Table 存储?

Why ArrayList Get only 50 value into Azure Table Storage?

我正在将产品列表放入 Azure Table Storage 中,该产品列表存储在 ArrayList 中并显示在 Tablelayout 中。我的问题 ArrayList 只得到 50 个值..如何解决这个问题呢。请帮助我。


   MobileServiceTable<ProductList> ProductBrand = mClient.getTable("ProductList", ProductList.class);


                        ProductBrand.where().field("enable").eq(val(true)).execute(new TableQueryCallback<ProductList>() {

                            public void onCompleted(List<ProductList> results, int count, Exception error, ServiceFilterResponse response) {

                                final ArrayList<ProductList> list3 = new ArrayList<ProductList>();
                                for (ProductList item : results) {
                                    list3.add(item);

                                }
                                for(int c=0;c<list3.size();c++)
                                    Toast.makeText(getBaseContext(),"Size:"+list3.size()+"Product "+list3.get(c).toString(), Toast.LENGTH_SHORT).show();  }
                        });

Azure Mobile Services returns 默认情况下有 50 条记录,您可以通过首先将 EnableQueryAttribute 添加到您的 public 'GET' 方法来解决此问题,例如

[EnableQuery(MaxTop(1000)]
public IEnumerable<Product> Get()
{
    ...
}

现在您可以使用Take方法请求一定数量的产品

MobileServiceTable<ProductList> ProductBrand =                                            
              mClient.getTable("ProductList", ProductList.class).Take(1000);

要避免在服务器上进行任何分页,请使用 IncludeTotalCount 方法