首页 > 解决方案 > Azure 表存储在一个事务中读取和更新项目

问题描述

表存储中有什么方法可以读取然后更新记录吗?例如在 SQL Server 中,我会使用这样的查询:

UPDATE table
SET
    testValue = 1
OUTPUT
    inserted.columnA,
    inserted.columnB,
    inserted.columnC
WHERE
    testValue = 0

目前我的代码如下所示:

var filter = "testValue eq 0";
var rangeQuery = new TableQuery<AzStorageEntityAdapter<T>>().Where(filter);

var result = _cloudTable.ExecuteQuery(rangeQuery);

var azStorageEntities = result.ToList();
IList<T> results = azStorageEntities.Select(r => r.InnerObject).ToList();

当它读取满足“testValue”也更新为 1 的过滤条件的值时,是否有某种方法可以在 where 子句中添加更新子句?

标签: c#azureazure-table-storage

解决方案


不幸的是,这不可能在单个操作中进行。

您必须首先获取一个实体(第一次操作),更新它,然后将其保存回表中(第二次操作)。


推荐阅读