3

我需要使用 Azure 表存储执行类似批量获取的操作。我有一个已知 RowKeys 和 PartitionKeys 的列表,我想检索每一个。

我想知道是否有比单独查询每个实体更好的方法——比如批量 GET。

这个答案中,有一个建议的解决方案:

TableQuery<DynamicTableEntity> query = new TableQuery<DynamicTableEntity>()
  .Where(TableQuery.CombineFilters( 
    TableQuery.GenerateFilterCondition("PartitionKey", 
    QueryComparisons.Equal, "partition1"),
    TableOperators.And,
    TableQuery.CombineFilters(
    TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, "row1"),
    TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, "row2"))));

但另一个答案提到:

There is (or course) a URL length limitation to the query. If you exceed the length, the query will still succeed because the service can not tell that the URL was truncated. In our case, we limited the combined query length to about 2500 characters (URL encoded!)

有没有办法知道一个表查询有多长?或者使用建议的答案安全地查询表的解决方案?

4

1 回答 1

0

根据 Azure 存储文档,$filter 中只允许进行 15 次比较。

https://docs.microsoft.com/en-us/rest/api/storageservices/querying-tables-and-entities

于 2017-12-24T18:35:11.893 回答