我希望能够使用如下结构在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,这可能意味着你不能嵌入任何类型的支持的短名单。
请澄清是否是这种情况或指出我可能遗失的内容。
答案 0 :(得分:5)
Azure表存储支持保存仅包含基本属性的实体。任何嵌套的子对象都需要单独保存:
您可以将子对象序列化为字符串并将这些字符串保存为属性。
或者,您可以将这些子对象保存为Azure表中的单个行
或者,如果您正在处理文档,则可以将这些对象保存在Azure BLOB存储中。