0

我是Azure的新手,因此我閱讀了Microsoft Table​Operation.​Merge Method關於Azure的微軟文檔不足:表操作合併方法

創建一個新的表操作,該操作將給定的 實體的內容與表中的現有實體合併。

這就是全部......現在,我應該從「合併」概念中瞭解什麼?這個合併究竟發生了什麼。

說我有

Body {PK: b, RK: 1, LeftHand: null, RightHand: 1000, LeftLeg: ll} > 
Body {PK: b, RK: 1, LeftHand: 9999, RightHand: null, Head: h} 
  • 空/空值會發生什麼?
  • 如果找不到物品,會發生什麼情況?
  • 我應該期待什麼樣的例外?
  • InsertOrMerge合併有什麼區別?

我怎麼猜?

回答

1

Merge操作實際上創建了一個超集。簡單地說:

  • 如果舊實體沒有屬性,並且新實體會執行下列操作:生成的實體將具有該新屬性。
  • 如果舊實體有一個屬性,而新實體沒有:該屬性的值將不會更改。它將和舊價值一樣。
  • 如果舊實體有一個屬性,並且新實體也具有該屬性:生成的實體將替換屬性值。

所以在你的例子:

舊實體:

{PK: b, RK: 1, LeftHand: null, RightHand: 1000, LeftLeg: ll} 

新實體:

{PK: b, RK: 1, LeftHand: 9999, RightHand: null, Head: h} 

實體合併操作後:

{PK: b, RK: 1, LeftHand: 9999, RightHand: 1000, LeftLeg: 11, Head: h} 
+0

好的,但如果沒有舊的實體會發生什麼? – Serge

+0

如何在RightHand中強制* null *或刪除Head?通過替換,我猜? – Serge

+0

'我如何在RightHand中強制null' - 您需要使用'Replace'而不是合併。 「如果沒有老實體會發生什麼事情 - 你是什麼意思? –