2015-07-03 3 views
0

У меня есть одна таблица в хранилище таблиц Azure (ну, собственно, в эмуляторе), которая содержит несколько типов сущностей, две из которых - AzureRuleInfo и AzureCostCodeInfo. Я хочу вытащить ряд объектов AzureRuleInfo и AzureCostCodeInfo из одного раздела.Ограничение Azure TableQuery по типу Entity

Я начал с двух табличных запросов, по одному для каждого типа, исходя из предположения, что 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

Спасибо, я пошел с раздельной собственности. Моя единственная оговорка заключалась в том, что, возможно, это было неправильно, но я думаю, что это действительно правильный подход. благодаря –

 Смежные вопросы

  • Нет связанных вопросов^_^