使用 azure 表,如果我知道实体的 RowKey 和 PartitionKey(以便我可以检索该实体),如何编辑该实体上的特定属性值?
这听起来像是一个非常标准的操作,但正常的做法是这样的:
public void UpdateEntity(ITableEntity entity)
{
TableOperation replaceOperation = TableOperation.Replace(entity);
table.Execute(replaceOperation);
}
即一个完整的 C# TableEntity 对象作为替换,而不是一个单独的属性名称/值对。
我想要更多类似的东西:
public void UpdateEntityProperty<T>(string partitionKey, string rowKey,
string propertyName, T newPropertyValue)
{
TableOperation retrieveOperation = TableOperation.Retrieve(partitionKey, rowKey);
TableResult retrievedResult = table.Execute(retrieveOperation);
TableEntity entity = (TableEntity)retrievedResult.Result;
// This line, of course, doesn't compile. But you get the idea.
entity.SetPropertyValue(propertyName, newPropertyValue);
TableOperation replaceOperation = TableOperation.Replace(entity);
table.Execute(replaceOperation);
}
我的理解是,在幕后,行存储为一组与该行上的属性相对应的键值对,因此更新属性的值应该很容易,而无需定义从 TableEntity 派生的整个 C# 类这样做。
我该怎么做?