2015-07-03 59 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

謝謝,我去一個單獨的屬性。我唯一的保留是可能做錯了,但我想這實際上是一種有效的方法。謝謝 –