2

我在 Azure 表存储中有一个表(实际上是在模拟器中),其中包含多个实体类型,其中两个是 AzureRuleInfo 和 AzureCostCodeInfo。我想从同一个分区中提取一系列 AzureRuleInfo 和 AzureCostCodeInfo 实体。

我从两个表查询开始,每种类型一个,假设new TableQuery<T>()只返回 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 表存储,所以我没有任何特定的设计驱动程序,例如性能。

4

1 回答 1

2

我们没有为实体类型公开任何专门的字段。它需要以自定义方式处理。

您是否看过以下文章中的异构实体类型部分https://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/#working-with-heterogeneous-entity-类型

您可以将实体类型添加到 RowKey 或使用单独的属性来存储实体类型(我认为您不想这样做)。

谢谢,

于 2015-07-05T02:33:13.450 回答