AzureStorage表查询:构建包含筛选器

时间:2020-10-09 16:04:37

标签: c# string azure-storage azure-table-storage string-comparison

我知道Azure存储在其当前API中没有包含类似过滤器的内容。但是,我也知道您可以使用以下代码为字符串构建一个包含类过滤器:

            TableQuery<TableEntity> Query = new TableQuery<TableEntity>()
            .Where(
            TableQuery.CombineFilters(
                TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.GreaterThanOrEqual, substring),
                TableOperators.And,
                TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, substring + someValue)
                ));

我的问题是,我应该使用什么作为someValue使其等同于包含?

我似乎在网上找不到一个图表,该图表按字母顺序显示C#中所有字符的第一个字符。有没有理由不这样做,并且在客户端进行搜索?我的partitionKey是定义明确的子组。

谢谢!

1 个答案:

答案 0 :(得分:1)

它实际上使用ascii顺序在过滤器中进行比较。

例如,如果substringgood,则在第二个过滤器中:

TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, "good" + someValue)

您应该将其更改为

TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, "gooe")

无需添加someValue。只需将您的子字符串的最后一个字符替换为下一个ascii字符即可。