在查看这两种方法的Microsoft文档后,我发现两者之间没有任何区别,或者我错过了一些东西。我已经使用InsertOrMerge进行了一些实验,但是所有它都用新数据替换旧数据。
答案 0 :(得分:3)
InsertOrUpdate =替换整个实体,包括删除未在新实体中定义的任何字段。
InsertOrMerge =如果新实体不包含旧字段和值,则旧字段和值将保留,并且将更新所有其他字段。
答案 1 :(得分:1)
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,其中结果实体是联合体 现有和更新的属性。