我希望能够使用如下结构在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; } }
如果删除子文档,保存父文档可以正常工作.保存这样的结构会导致"其中一个请求输入无效"异常.做一些谷歌搜索出现了这篇文章关于支持的类型,这可能意味着你不能嵌入除支持的那些短列表之外的任何类型.
请澄清是否是这种情况或指出我可能缺少的东西.
Azure表存储支持保存仅包含基本属性的实体.任何嵌套的子对象都需要单独保存:
您可以将子对象序列化为字符串并将这些字符串保存为属性.
或者,您可以将这些子对象保存为Azure表中的单个行
或者,如果您正在处理文档,则可以将这些对象保存在Azure BLOB存储中.