C# AzureStorage表查询:生成包含筛选器
我知道Azure存储在其当前API中没有类似包含的筛选器。但是,我也知道,您可以使用以下代码为字符串构建一个类似contains的过滤器:C# AzureStorage表查询:生成包含筛选器,c#,azure,azure-storage,azure-table-storage,string-comparison,C#,Azure,Azure Storage,Azure Table Storage,String Comparison,我知道Azure存储在其当前API中没有类似包含的筛选器。但是,我也知道,您可以使用以下代码为字符串构建一个类似contains的过滤器: TableQuery<TableEntity> Query = new TableQuery<TableEntity>() .Where( TableQuery.CombineFilters( TableQuery.Generate
TableQuery<TableEntity> Query = new TableQuery<TableEntity>()
.Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.GreaterThanOrEqual, substring),
TableOperators.And,
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, substring + someValue)
));
TableQuery Query=newtablequery()
.在哪里(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.GreaterThanOrEqual,子字符串),
表3.以及,
TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.LessThan,substring+someValue)
));
我的问题是,我应该使用什么作为someValue来使其等效于包含
我似乎在网上找不到一个图表,从c#的词法上可以看出,哪个字符是所有字符的第一个字符。是否有任何理由不这样做,并在客户端进行搜索?我的分区键是定义良好的子组
提前谢谢 它实际上使用
ascii
顺序在过滤器中进行比较
例如,如果子字符串
为良好
,则在第二个过滤器中:
TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.lesst,“good”+someValue)
你应该把它改成
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, "gooe")
无需添加
someValue
。只需将子字符串的最后一个字符替换为下一个ascii字符。这样的字符就可以正常工作了?TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.LessThan,substring.Remove(substring.Length-1,1)+(char)((int)substring.Last())+1));