2012-08-28 12 views
2

我需要合併的屬性到什麼是已經保存在Azure Table中的動態列表。從我的研究「插入」或「插入或合併」是正確的方法。Azure Table InsertOrMerge Upsert:可以動態創建要合併的對象嗎?

  • 如何獲取C#語言以允許保存屬性的動態列表?

  • 是原始的XML編輯做到這一點的唯一途徑?


More information on Upsert and InsertOrMerge is available here


在我的特定問題的其他細節

我使用的是Entity對象跟蹤本質上是長度N的陣列,其中N < 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種性能的一個大胖子的對象,那麼我消耗存儲帶寬和創建不需要存在效率低下。

且不說這些附加屬性,即使空,將計入我的最大實體尺寸。這是不希望的,因爲內在的開銷意味着我將沒有更多空間來保存更長記錄的數據。

回答

0

我寫了一個開源客戶端,Lucifure藏匿,CodePlex上,並通過現有的NuGet,這將讓你堅持一個數組來Azure的表存儲,每列一個數組元素。

Lucifure藏匿還支持經由字典動態特性,並可能是理想的「插入合併」。 (CodePlex

它不支持的是能夠查詢單個數組元素。請注意,除非查詢受嚴格的分區和/或行鍵範圍限制,否則對非關鍵元素的查詢可能效率低下。