2

我需要将属性的动态列表合并到已保存在 Azure 表中的内容中。根据我的研究,用“插入或合并”“upsert”是正确的方法。

  • 如何让 C# 语言允许保存动态属性列表?

  • 原始 XML 编辑是完成此任务的唯一方法吗?


有关 Upsert 和 InsertOrMerge 的更多信息,请点击此处


关于我的特定问题的更多详细信息

我正在使用一个Entity对象来跟踪本质上是一个长度为 N 的数组,其中 N < 240(255 是 Azure Table 中可用的最大属性数)。数组中的每个位置都对应一个属性名称,如下所示:

 /* Note: Each number is prefixed by "a" since properties can't start with a number and I like it when all properties have the same length */

public class MyFatEntity
{

public string A01 {get;set;}

public string A02 {get;set;}

// ..

public string A10 {get;set;}

// ..

public string AF0 {get;set;}

}

我需要能够将字符串与数组的任何特定位置进行匹配。我计划对此使用投影。

我预见到的一个问题是,如果我创建一个具有 240 个属性的大型胖对象,那么我正在消耗存储带宽并产生不需要存在的低效率。

更不用说这些额外的属性,即使为空,也将计入我的最大实体大小。这是不希望的,因为内在开销意味着我将有更少的空间来保存更长记录的数据。

4

1 回答 1

0

我编写了一个开源客户端 Lucifure Stash,可在 CodePlex 和 NuGet 上使用,它允许您将数组持久保存到 Azure 表存储,每列一个数组元素。

Lucifure Stash 还通过字典支持动态属性,非常适合“插入合并”。( CodePlex )

它不支持查询单个数组元素的能力。请注意,除非查询受到严格的分区和/或行键范围的约束,否则对非键元素的查询可能效率低下。

于 2012-09-06T00:04:35.853 回答