Предположим, у меня есть следующая таблица хранения table NAMED Tbl_ResourceCost.

enter image description here

Теперь я хочу обновить расширенную стоимость, используя ключ раздела и ResourceGuID. Итак, если я передам xxx01 как PartitionKey и zzz01 как ResourceGuID в условии WHERE, тогда он обновит только мою расширенную стоимость (например, 100 и 200 ), скажем, 700.

Если мы рассмотрим его в SQL для обновления, то запрос будет таким: «UPDATE Tbl_ResourceCost set ExtendedCost = 700, где PartitionKey = xxx01 и ResourceGuID = zzz01». Он обновит 100 и 200 до 700 за одно выполнение.

Я ищу аналогичный запрос на C # для обновления в таблице хранилища Azure . Я использую пакет NuGet как: Microsoft.Azure.Cosmos.Table

0
Roushan 18 Ноя 2020 в 08:21

1 ответ

Лучший ответ

Если вы хотите обновить свойства объекта хранилища таблиц Azure, нам необходимо предоставить ключ раздела и ключ строки. Дополнительные сведения см. здесь. Поэтому в соответствии с вашими потребностями нам нужно запросить хранилище таблиц Azure, чтобы получить эти необходимые вам сущности, а затем обновить их.

Например

using Microsoft.Azure.Cosmos.Table;
using System.Threading.Tasks;
using System;
namespace Storage
{
    class Program
    {
        static async Task Main(string[] args)
        {
           
            string connectionString = "";
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
            var table =tableClient.GetTableReference("test");

            TableQuery<MyEntity> myQuery = new TableQuery<MyEntity>().Where(
                    TableQuery.CombineFilters(
                    TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, ""),
                        TableOperators.And,
                    TableQuery.GenerateFilterCondition("ResourceGuID", QueryComparisons.Equal,"")));

            foreach (MyEntity entity in table.ExecuteQuery(myQuery))
            {
                entity.ExtendedCost = ;
                TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(entity);
                TableResult result = await table.ExecuteAsync(insertOrMergeOperation);
                var s = result.Result as MyEntity;
               Console.WriteLine(s.ExtendedCost )
            }

        }      
    }

    public class MyEntity : TableEntity
    {
        public MyEntity()
        {
        }

  
        public string ResourceGuID{ get; set; }

        public Int32 ExtendedCost { get; set; }

    }
}
1
Jim Xu 19 Ноя 2020 в 02:11