InsertOrUpdate与Azure存储表中的InsertOrMerge有什么区别?

时间:2017-08-03 17:04:17

标签: c# azure-storage azure-table-storage

在查看这两种方法的Microsoft文档后,我发现两者之间没有任何区别,或者我错过了一些东西。我已经使用InsertOrMerge进行了一些实验,但是所有它都用新数据替换旧数据。

2 个答案:

答案 0 :(得分:3)

InsertOrUpdate =替换整个实体,包括删除未在新实体中定义的任何字段。

InsertOrMerge =如果新实体不包含旧字段和值,则旧字段和值将保留,并且将更新所有其他字段。

答案 1 :(得分:1)

call stack

  

Windows Azure Table提供的两个Upsert API   InsertOrReplace Entity和InsertOrMerge实体,定义为   如下:

     
      
  • https://blogs.msdn.microsoft.com/windowsazurestorage/2011/09/15/windows-azure-tables-introducing-upsert-and-query-projection/:正如API名称所暗示的那样,如果实体没有,InsertOrReplace Entity将插入实体   存在,或者如果实体存在,则替换现有实体。这意味着   一旦操作成功完成,表将包含   具有在InsertOrReplace中定义的属性的新实体   实体请求,替换先前实体及其属性(如果有)   曾经存在过。
  •   
  • InsertOrReplace Entity:如果实体不存在,InsertOrMerge实体将插入实体,如果实体存在,则插入实体   提供的实体属性与已存在的实体属性。一旦   操作成功完成后,表格将包含   提供的实体具有请求中提供的更新属性。在   换句话说,如果实体存在,API将具有相同的效果   as InsertOrMerge Entity,其中结果实体是联合体   现有和更新的属性。
  •