我有一个场景,我将数据插入/更新到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);
}
答案 0 :(得分:3)
您可以利用合并操作。请注意,您应将ETag设置为" *"如果您不想在更新之前阅读该实体。
参考文献:
答案 1 :(得分:2)
此处InsertOrMerge
和Merge
操作都可以。