如何为Azure Table Storage编写包含Partition Key的组合查询
Azure Table Storage 多条件组合查询实现方案
你可以通过TableQuery.CombineFilters方法拼接两个过滤条件,实现name和Partition Key的联合查询,修改后的代码如下:
// 构造函数新增partitionKey入参 public Spec(string name, string partitionKey) { // 生成原有name过滤条件 var nameFilter = TableQuery.GenerateFilterCondition(nameof(table.Name), QueryComparisons.Equal, name); // 生成PartitionKey过滤条件 var partitionKeyFilter = TableQuery.GenerateFilterCondition(nameof(TableEntity.PartitionKey), QueryComparisons.Equal, partitionKey); // 用AND逻辑拼接两个条件 var combinedFilter = TableQuery.CombineFilters(nameFilter, TableOperators.And, partitionKeyFilter); // 赋值查询条件 Query = new TableQuery<TableEntity>().Where(combinedFilter); }
补充说明
- 如果你需要校验该组合是否唯一,执行查询后判断返回结果集的长度即可:如果结果为空说明该组合不存在,结果长度为1说明存在唯一匹配条目
- 注意不要直接用C#的逻辑运算符
&&拼接过滤条件,必须使用Azure Storage SDK提供的CombineFilters方法拼接多条件,否则会触发查询语法错误
内容的提问来源于stack exchange,提问作者saon
相关产品推荐
相关产品推荐

