我正在使用一個應用程序,其中從TableServiceObject派生的.NET類型被保存到Azure表存儲(稱爲「Person」)具有另一個實體(「events」)的集合。當然,集合屬性不會保存到Azure表存儲。如何向保存在Azure表存儲中的實體添加新屬性?
我想要做的是在Person存儲實體上具有可變數量的屬性,並在必要時創建新屬性。例如,如果Person1之前參加了1個事件,並且出席了一個新事件,那麼我的代碼需要爲Person1實體創建一個「Event2」屬性,並將指針保存到該屬性中的Event2的存儲位置。 Person1然後有2個「事件」屬性,但該表中的另一個實體可能有10個(event1,event2,event3 ... event10)。
因爲Person類直接映射到Azure表,它會自動爲類中的每個公共屬性創建一個屬性,所以我無法找到一種方法將Event2屬性動態添加到此保存的實體,而無需創建永久對我的班級財產,我不想這樣做。有沒有辦法?
想要存儲此「鋸齒狀」屬性集的目的是爲了讓我能夠獲取所有人蔘加的活動,而無需對存儲事件的分區執行完整掃描。
謝謝!
更新:Smarx是正確的 - 一旦我知道要尋找什麼,很容易找到如何使用ReadingEntity和WritingEntity事件在Azure表服務這樣的描述: http://convective.wordpress.com/2009/12/30/entities-in-azure-tables/
謝謝Smarx!聽起來很有希望。你是對的 - 我在使用.NET。我會檢查你說的並試一試。再次感謝! – 2012-07-25 12:49:59
這就是答案。謝謝Smarx!我沒有弄清楚如何添加字典 - 但是我發佈的鏈接顯示瞭如何篡改XML來添加屬性。看起來好像在實際的.NET實體中添加任何東西都是很困難的,因爲一旦我修改了.NET實體,就沒有任何方法可以告訴它繼續保存操作... – 2012-07-26 16:12:11
太棒了!尼爾的帖子正是我想到的。我對字典的看法是,人們經常在其.NET對象(如「ExtraProperties」)中包含字典屬性,在「ReadingEntity」和「WritingEntity」中包含字典屬性,它們將值放入該字典中或使用字典分別修改XML。這只是一個方便的地方,讓您可以通過代碼訪問這些屬性。 – smarx 2012-07-26 22:58:38