我有一个场景,我将数据插入/更新到Azure存储表2值MyValue和MyDate。
有几种情况我只需要更新1个值MyValue而不是MyDate。
但是当我更新操作时,它会更新值。 它改变myValue但使MyDate为null。
在更新中是否有任何操作我可以跳过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); }I have a scenario where I insert/update data to Azure storage table 2 values MyValue and MyDate.
There are few scenarios where I have to update only 1 value MyValue and not MyDate.
But When I do update operation, it updates bothe the values. It changes myValue but makes MyDate to null.
Is there any operation in update where I can skip MyDate update and keep its value as it is?
public class MyEntity : TableEntity { public MyEntity(string partitionKey, string rowKey) : base(partitionKey, rowKey) { } public string MyValue { get; set; } public DateTime MyTime { get; set; } }This code insert or replaces data
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); }最满意答案
您可以利用合并操作。 请注意,如果您不想在更新之前阅读实体,则应将ETag设置为“*”。
参考文献:
合并实体REST API .NET库中的TableOperation.Merge方法You can leverage Merge operation. Please note that you should set ETag to "*" if you don't want to read the entity before updating it.
References:
Merge Entity REST API TableOperation.Merge Method in .NET library更多推荐
发布评论