Как встраивать документы в хранилище таблиц Azure - PullRequest
2 голосов
/ 10 ноября 2011

Я хотел бы иметь возможность хранить объекты с дочерними объектами в хранилище таблиц Azure, используя такую ​​структуру:

public class AzureTestDocument : TableServiceEntity
{
    public AzureTestDocument(int counter)
        : base("_default", counter.ToString())
    {
        Counter = counter;
        Child = new AzureTestChildDocument(counter);
    }

    public int Counter { get; set; }
}

public class AzureTestChildDocument
{
    public AzureTestChildDocument(int counter)
    {
        Counter = counter;
    }

    public int Counter { get; set; }
}

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

Пожалуйста, уточните, так ли это илиНаправь меня на то, чего мне не хватает.

1 Ответ

5 голосов
/ 10 ноября 2011

Хранилище таблиц Azure поддерживает сохранение объектов, которые содержат только примитивные свойства. Любые вложенные дочерние объекты необходимо сохранять отдельно:

Вы можете сериализовать дочерние объекты в строки и сохранить эти строки как свойства.

Либо вы можете сохранить эти дочерние объекты в виде отдельных строк в таблицах Azure

Либо, если вы имеете дело с документами, вы можете сохранить эти объекты в хранилище BLOB-объектов Azure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...