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

use*_*050 6 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();
Run Code Online (Sandbox Code Playgroud)

Bre*_*een 4

您想要组合多个过滤器。

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);
Run Code Online (Sandbox Code Playgroud)

或者,它可能更容易用于CreateQuery<T>()您的CloudTable,这将允许您编写 LINQ 查询:

_cloudTable.CreateQuery<ConnectionEntity>()
    .AsQueryable()
    .Where(w => w.PartitionKey == "1" 
        || w.PartitionKey == "2" 
        || w.PartitionKey == "3");
Run Code Online (Sandbox Code Playgroud)