2015-07-03 77 views
0

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

我开始时使用了两个表查询,每种类型都有一个,假设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 Table Storage,因此我没有任何特定的设计驱动程序,例如性能。

回答

1

我们没有公开实体类型的专业领域。它需要以自定义的方式处理。

你看过在下面的文章https://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/#working-with-heterogeneous-entity-types中使用异构实体类型部分。

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

感谢,

+0

谢谢,我去一个单独的属性。我唯一的保留是可能做错了,但我想这实际上是一种有效的方法。谢谢 –