我需要将动态属性列表合并到Azure表中已保存的内容中。从我的研究“插入或合并”的“upsert”是正确的方法。
如何获取C#语言以允许保存动态属性列表?
原始XML编辑是实现此目的的唯一方法吗?
More information on Upsert and InsertOrMerge is available here
有关我的特定问题的其他详细信息
我正在使用Entity
对象来跟踪基本上是N长度的数组,其中N <1。 240(255是Azure表中可用的最大属性数)。数组中的每个位置都对应一个属性名称,如下所示:
/* 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个属性的大型胖对象,那么我就会消耗存储带宽并产生不需要存在的低效率。
更不用说这些额外的属性,即使是null,也将计入我的最大实体大小。这是不可取的,因为内在开销意味着我将有更少的空间来保存更长记录的数据。
答案 0 :(得分:0)
我已经在CodePlex和NuGet上编写了一个开源客户端Lucifure Stash,它允许您将数组保存到Azure Table Storage,每列一个数组元素。
Lucifure Stash还通过字典支持动态属性,非常适合“插入合并”。 (CodePlex)
它不支持的是能够查询单个数组元素。请注意,除非查询受到严格的分区和/或行键范围的约束,否则对非关键元素的查询可能效率低下。