如何在Azure表存储中嵌入文档

时间:2011-11-10 02:24:33

标签: azure nosql azure-storage azure-table-storage

我希望能够使用如下结构在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; }
}

如果删除子文档,保存父文档可以正常工作。保存这样的结构会导致“其中一个请求输入无效”异常。进行一些谷歌搜索显示了这篇文章about supported types,这可能意味着你不能嵌入任何类型的支持的短名单。

请澄清是否是这种情况或指出我可能遗失的内容。

1 个答案:

答案 0 :(得分:5)

Azure表存储支持保存仅包含基本属性的实体。任何嵌套的子对象都需要单独保存:

您可以将子对象序列化为字符串并将这些字符串保存为属性。

或者,您可以将这些子对象保存为Azure表中的单个行

或者,如果您正在处理文档,则可以将这些对象保存在Azure BLOB存储中。