c# - Microsoft Azure存储表查询结果可以按属性值过滤吗

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

我目前正在学习Azure存储表。我从 http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-table-storage-20/ 学到了一些东西

这似乎是一个键/值对存储。它具有分区键、行键,最多包含 252 个属性。

从上面的链接来看,它只能通过row key来过滤查询结果。我们可以通过过滤其中一个属性来查询结果吗?

我的项目是将我们当前的sql数据库迁移到Azure存储表。

当前 SQL 数据库有三列

a 列、b 列、c 列

目前我们的函数需要支持对a列和b列进行过滤查询。当我们迁移到Azure存储表时,我们需要保留该功能

我认为我们只能将两列中的一列设置为行键,其他列应该在Azure表的属性中。另外,我不认为列 b 可以作为行键,因为它无法唯一标识我们之前的 sql 表中的行(我的理解是否正确?)

那么,如果我在将表迁移到 Azure 存储时仅将 a 列设置为行键,将 b 列设置为属性,我可以同时按 a 列和 b 列进行查询吗?如果没有,有什么建议可以解决吗?

非常感谢

最佳答案

是的,您可以按任何属性进行过滤。但请记住,只有 PartitionKey 和 RowKey 被索引,因此任何不至少包含 PartitionKey 的查询操作都将导致全表扫描。如果您的表包含大量实体,这将成为一个问题。

关于c# - Microsoft Azure存储表查询结果可以按属性值过滤吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24113477/

相关文章:

c# - HttpClient GetAsync 未按预期工作

c# - InitializeComponent() 应该按代码顺序出现在哪里?

C# 实用程序类 - 设置为一般用途并编译 w/o Main

c# - 使用 EPPlus 通过表达式进行条件格式化

java - 我如何将一个sql查询作为参数传递给java中的另一个sql查询?

azure - 在 Microsoft Azure 平台上设置 OrientDB 镜像

sql - 查询以计算唯一关系的数量

php - 如何在查询运行之前删除查询中的字符

具有数据库定价的 Azure 弹性 SQL 服务器池

javascript - Azure Functions Http 触发器 - DocumentDB 输出集成 Microsoft.Azure.Documents.Client : Value cannot be null