如何从Azure表存储中的分区键列表中查询

时间:2018-11-06 00:32:19

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

我有一个Azure表,其中分区键是登录到网站的用户的配置文件ID,因此,如果我有一个用户ID列表,那么如果该ID表中有分区键,则需要获取。我想返回找到的ID(分区键)的列表。

我似乎无法在网上找到任何好的信息,也就是说我可以轻松做到这一点!

如果需要,我可以移至Sql Server而不是Azure存储表

我想做这样的事情

 var query = new TableQuery<ConnectionEntity>()
.Where(TableQuery.GenerateFilterCondition("PartitionKey" , QueryComparisons.Equal, "1 or 3 or 4"));

 var queryResult = table.ExecuteQuery(query).ToList();

1 个答案:

答案 0 :(得分:0)

您要组合多个过滤器。

var filterOne = TableQuery.GenerateFilterCondition("PartitionKey" , QueryComparisons.Equal, "1");

var filterTwo = TableQuery.GenerateFilterCondition("PartitionKey" , QueryComparisons.Equal, "2");

var filterThree = TableQuery.GenerateFilterCondition("PartitionKey" , QueryComparisons.Equal, "3");

var combinedFilters = TableQuery.CombineFilters(
                    TableQuery.CombineFilters(
                        filterOne,
                        TableOperators.Or,
                        filterTwo),
                    TableOperators.And, filter3);

var query = new TableQuery<ConnectionEntity>()
    .Where(combinedFilters);

或者,对您的CreateQuery<T>()使用CloudTable可能会更容易,这将使您可以编写LINQ查询:

_cloudTable.CreateQuery<ConnectionEntity>()
    .AsQueryable()
    .Where(w => w.PartitionKey == "1" 
        || w.PartitionKey == "2" 
        || w.PartitionKey == "3");