将实体数据更新到Azure存储表

时间:2016-05-21 22:01:44

标签: c# azure azure-table-storage

我有一个场景,我将数据插入/更新到Azure存储表2值MyValue和MyDate。

在某些情况下,我只需要更新1个值MyValue而不是MyDate。

但是当我更新操作时,它会更新值。它改变myValue但使MyDate为空。

在更新中是否有任何操作我可以跳过MyDate更新并保持其值不变?

public class MyEntity : TableEntity
{
public MyEntity(string partitionKey, string rowKey) : 
 base(partitionKey, rowKey)
 {
 }
public string MyValue { get; set; }
public DateTime MyTime { get; set; }
}

此代码插入或替换数据

   var entity = new MyEntity(partitionKey, rowKey)
     {
        MyValue = "test my value",
        MyTime = DateTime.Now();
     };

    AddEntity(entity);



     public void AddEntity(MyEntity entity)
     {
     CloudTable table =     _tableClient.GetTableReference("myAzureStorageTableName");
 TableOperation insertOp = TableOperation.InsertOrReplace(entity);
 table.Execute(insertOp);                         
      }

2 个答案:

答案 0 :(得分:3)

您可以利用合并操作。请注意,您应将ETag设置为" *"如果您不想在更新之前阅读该实体。

参考文献:

  1. Merge Entity REST API
  2. TableOperation.Merge Method in .NET library

答案 1 :(得分:2)

此处InsertOrMergeMerge操作都可以。