我有一个 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();

最佳答案

您希望 组合 多个过滤器。

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");

关于c# - 如何从 Azure 表存储中的分区键列表进行查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53164232/

10-12 23:16