我需要将数组的内容存储到Azure表存储中。该数组将包含0到100个条目。我不想创建100个不同的元素,所以有一种方法可以打包数组,存储它并稍后解压缩。任何例子都将非常感激。我只是不知道从哪里开始:-(
答案 0 :(得分:2)
您需要将数组序列化为二进制或xml,然后使用适当的列类型来存储数据(二进制对象或xml。)
XML将是最灵活的,因为您仍然可以在存储时查询值。 (你无法查询二进制数据。不管怎么说都不容易。)以下是serializing的一个例子,这里有inserting the value一个表格。
Some detail on XML support in Azure:
xml数据类型
SQL Azure数据库支持xml数据 存储XML数据的类型。您可以 将xml实例存储在列或中 xml类型的变量。
支持XML数据修改 语言
XML数据修改语言 (XML DML)是一个扩展 XQuery语言。 XML DML添加了 以下区分大小写的关键字 SQL支持XQuery和它们 Azure数据库:
insert(XML DML) 删除(XML DML) 替换(XML DML)的值
支持xml数据类型方法
您可以使用xml数据类型方法 查询存储在的XML实例 xml类型的变量或列。 SQL Azure数据库支持 遵循xml数据类型方法:
query()方法(xml数据类型) value()方法(xml数据类型) exist()方法(xml数据类型) modify()方法(xml数据类型) nodes()方法(xml数据类型)
答案 1 :(得分:1)
如果你真的是从Azure Table Storage开始,那么有一些很好的“简单”教程 - 例如http://blogs.msdn.com/b/jnak/archive/2008/10/28/walkthrough-simple-table-storage.aspx
一旦您对读取/写入实体感到满意,那么您可以通过多种方式将阵列映射到表存储。
如果您想要从持久存储中分别访问数组的每个元素,那么您应该创建0到99个单独的实体 - 每个实体在Table存储中都有自己的实体。
如果您不想单独访问它们,那么您可以将数组存储在表格中的单个实体(行)中 - 例如使用PartitionKey =“MyArrays”,RowKey =“”并使另一列包含序列化为例如的数组。 JSON。
作为2的变体,您还可以将数组项(0到99)存储在行中的单独列(“Array_0”,...“Array_99”)中。有一些方法可以使用表存储实体上的读/写事件将其映射到一个不错的C#Array属性 - 但如果您从Azure开始,这可能不是最好的起点。
答案 2 :(得分:1)
小心,除了1MB实体限制外,还有每场限制(我认为它是64kb)
您最好的选择是使用Lokad Fat Entity