在 Windows Azure 表存储上,我正在执行下一个查询:
CloudTableClient ctc=TableStorage.getTableClient();
String q1=TableQuery.generateFilterCondition(TableConstants.PARTITION_KEY, QueryComparisons.EQUAL, Long.toHexString(partitionId));
TableQuery<Actividad> rangeQuery=TableQuery.from(tableName, Actividad.class).where(q1).take(2);
int e=0;
for(Actividad ac:ctc.execute(query)){
e++;
}
System.out.println(e);
但是我得到了分区上的所有行,而不仅仅是在 take(2) 上指定的前 2 行。
有什么建议吗?
回复 smarx:
我使用 Wireshark 查看 http 请求:
最初的请求是:
GET /actividadreciente?$filter=PartitionKey%20eq%20%2717%27&$top=2&timeout=60
服务有响应,然后发出很多请求:
GET /actividadreciente? $filter=PartitionKey%20eq%20%2717%27&$top=2&NextRowKey=1%2124%21RkZGRkZFQzY2REYzMTA3Mw--&timeout=60&NextPartitionKey=1%214%21MTc-
GET /actividadreciente?$filter=PartitionKey%20eq%20%2717%27&$top=2&NextRowKey=1%2124%21RkZGRkZFQzY3Mjk2MEZEOA--&timeout=60&NextPartitionKey=1%214%21MTc-
GET /actividadreciente?$filter=PartitionKey%20eq%20%2717%27&$top=2&NextRowKey=1%2124%21RkZGRkZFQzY3Mjk5MzVGOQ--&timeout=60&NextPartitionKey=1%214%21MTc-
等等。