Посмотрите на упаковке я реализовал и поставить в NuGet: https://www.nuget.org/packages/ObjectFlattenerRecomposer/
Он также добавил в Azure Storage SDK следующей версии: https://github.com/Azure/azure-storage-net/pull/337/files
Описание:
предоставляет функциональные возможности сгладить сложные объекты в словаре EntityProperty и функциональность для перекомпоновки исходного сложного объекта из словаря сглаженных свойств. Одно использование заключается в том, что API позволяет записывать любой сложный объект с вложенными свойствами в хранилище таблиц Azure в сплющенной форме, что обычно невозможно при использовании SDK Azure Storage Client.
Версия 2.0 теперь также поддерживает запись и чтение IEnumerable
свойств типа, таких как списки, массивы, словари для Azure Table Storage.
Блог: https://doguarslan.wordpress.com/2016/02/03/writing-complex-objects-to-azure-table-storage/
Использование: // Свести объект и преобразовать его в EntityProperty словарь
словарь flattenedProperties = ObjectFlattenerRecomposer.Flatten (complexObject);
// Создаем DynamicTableEntity и устанавливаем его PK и RK DynamicTableEntity dynamicTableEntity = new DynamicTableEntity (partitionKey, rowKey);
dynamicTableEntity.Properties = flattenedProperties;
// Записываем DynammicTableEntity к Azure Table Storage с помощью клиента SDK
// Читаем объект назад от AzureTableStorage в DynamicTableEntity, используя тот же PK и RK DynamicTableEntity объект = [Read из Azure с использованием ПК и RK] ;
// Преобразование DynamicTableEntity обратно в исходный сложный объект. Представьте, что оригинальный комплект объекта Объект был типа Order.
Заказ заказа = ObjectFlattenerRecomposer.ConvertBack (entity.Properties);
Это не работает в текущей версии SDK. – James