【发布时间】:2012-08-05 01:51:51
【问题描述】:
我正在尝试使用 ReadingEntity 和 WritingEntity 事件向 Azure 表存储动态添加属性,如下所述:How to add new properties to an entity saved in Azure Table Storage?。
目的是将我的 poco 上的 List 属性保存到表存储中。为了做到这一点,每次我需要向实体列表中添加一个新项目时,我都会将该实体从表存储中取出,计算该实体具有的具有特定名称的属性的数量,然后再添加一个具有相同的名称并在末尾增加索引 - 例如,如果实体具有属性 Friend1、Friend2 和 Friend3,我将添加 Friend4。
我遇到的问题是,当我将属性添加到 1 个实体时,它似乎将其添加到表中的所有实体(或者可能是分区 - 我尚未检查)。因此,如果我将 Friend1 添加到 Entity1,然后将 Friend 属性添加到 Entity2,我希望添加 Entity2.Friend1。相反,Friend1 似乎已经存在于 Entity2 上,其值为 NULL。因此,添加属性的代码看到 Friend1 已经存在,并将 Friend2 属性添加到 Entity2。好像这是一个关系数据库,我正在架构中创建一个列。显然,这完全破坏了我如何存储这些信息的计划......
这是它应该如何工作的?我一直在理解每个实体的属性可能是唯一的。
谢谢!
【问题讨论】:
-
这对存储模拟器(开发存储)有任何影响吗?
-
我敢打赌@GauravMantri 的猜测是正确的。 :-) 开发存储做了一些奇怪的事情……它实际上在后台使用了一个关系数据库。用实际的存储服务试试这个。
-
你是对的——这是一个开发存储模拟器。感谢您的帮助 - 我会尝试使用真实的存储帐户,看看如果问题消失了怎么办!
-
我在 Azure 中启动并运行了我的应用程序,问题就消失了!多谢你们。如果您想实际创建此问题的答案,我会接受它,以便您获得信用。谢谢!