Эффективная ли пользовательская сериализация хранилища объектов Azure Table? - PullRequest
3 голосов
/ 19 августа 2011

Есть ли способ эффективно настроить сериализацию объекта хранения таблицы Azure? Я уже прочитал много сообщений / тем о событиях ReadingEntity / WritingEntity, но я думаю, что этого недостаточно для того, что мне нужно. Я хочу, чтобы мои лица поддерживали:

  1. Свойства типов перечислений;
    • Я протестировал много опций, другие у меня не работают, я получаю исключение (код состояния 500), обработчики событий ReadingEntity / WritingEntity не вызываются, а сущность не сохраняется. Тогда подход к обработчикам событий не работает с этой проблемой.
  2. Свойства только для чтения;
    • В моем тесте я получаю исключение («Закрытый тип System.String не имеет соответствующего настраиваемого свойства S»), но объект сохранился, тогда, возможно, я могу просто проигнорировать исключение. Вызывается обработчик события WritingEntity, но я думаю, что, возможно, я не могу ничего сказать об исключении. Большая проблема заключается в том, что обработчик события ReadingEntity не вызывается при загрузке объекта, поэтому я не могу решить эту проблему. Тогда подход к обработчикам событий не работает для этой проблемы.
  3. Переходные / расчетные свойства;
    • Я не тестировал, но я думаю, что это можно сделать с помощью обработчиков событий, просто удалите свойство в обработчике событий WritingEntity.
  4. Пользовательские имена для элементов PartitionKey / RowKey;
    • Я не тестировал, но думаю, что это можно сделать с помощью подхода к обработчикам событий. Я могу использовать атрибут DataServiceEntity в своем классе сущностей и переименовать его из своих пользовательских имен в имена-реквесты в обработчик событий WritingEntity.
  5. Нет открытого конструктора по умолчанию.
    • Хорошо, в моем тесте все работает нормально.

Что ж, проблемы 1 и 2 остаются для меня большой проблемой, у кого-нибудь есть идеи, как я смогу выполнить все 5 целей?

Спасибо в .. С наилучшими пожеланиями ..

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

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

Вы можете получить его на http://www.lucifure.com.

1 голос
/ 19 августа 2011

Я бы предложил FatEntity подход Lokad.Cloud. По нашему опыту это проще и эффективнее.

...