按实体类型限制 Azure TableQuery
Restricting Azure TableQuery by Entity type
我在 Azure Table 存储中有一个 table(好吧,实际上在模拟器中),它包含多个实体类型,其中两个是 AzureRuleInfo 和 AzureCostCodeInfo。我想从同一分区中提取一系列 AzureRuleInfo 和 AzureCostCodeInfo 实体。
我从两个 table 查询开始,每种查询一个,假设 new TableQuery<T>()
只会 return 类型 T 的实体 - 但它似乎撤回了一切与分区键匹配。
TableQuery<AzureRuleInfo> query = new TableQuery<AzureRuleInfo>()
.Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, financialPeriodId));
TableQuery<AzureCostCodeInfo> query = new TableQuery<AzureCostCodeInfo>()
.Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, financialPeriodId));
我的问题是:
- API 是否提供按实体类型查询的方法? (最好不必添加自定义实体 属性,如 "MyEntityType")。
- 还是我最好撤回所有内容并将结果过滤到两个单独的集合中?
这是个人应用程序,我第一次涉足 Azure Table 存储,所以我没有任何特定的设计驱动因素,例如性能。
我们没有公开任何实体类型的专门字段。它需要以自定义方式处理。
您是否看过以下文章中的使用异构实体类型部分 https://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/#working-with-heterogeneous-entity-types。
您可以将实体类型添加到 RowKey 或使用单独的 属性 来存储实体类型(我认为您不想这样做)。
谢谢,
昂
我在 Azure Table 存储中有一个 table(好吧,实际上在模拟器中),它包含多个实体类型,其中两个是 AzureRuleInfo 和 AzureCostCodeInfo。我想从同一分区中提取一系列 AzureRuleInfo 和 AzureCostCodeInfo 实体。
我从两个 table 查询开始,每种查询一个,假设 new TableQuery<T>()
只会 return 类型 T 的实体 - 但它似乎撤回了一切与分区键匹配。
TableQuery<AzureRuleInfo> query = new TableQuery<AzureRuleInfo>()
.Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, financialPeriodId));
TableQuery<AzureCostCodeInfo> query = new TableQuery<AzureCostCodeInfo>()
.Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, financialPeriodId));
我的问题是:
- API 是否提供按实体类型查询的方法? (最好不必添加自定义实体 属性,如 "MyEntityType")。
- 还是我最好撤回所有内容并将结果过滤到两个单独的集合中?
这是个人应用程序,我第一次涉足 Azure Table 存储,所以我没有任何特定的设计驱动因素,例如性能。
我们没有公开任何实体类型的专门字段。它需要以自定义方式处理。
您是否看过以下文章中的使用异构实体类型部分 https://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/#working-with-heterogeneous-entity-types。
您可以将实体类型添加到 RowKey 或使用单独的 属性 来存储实体类型(我认为您不想这样做)。
谢谢,
昂