Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取存储帐户中azure表中的一行_C#_Azure_Azure Table Storage - Fatal编程技术网

C# 读取存储帐户中azure表中的一行

C# 读取存储帐户中azure表中的一行,c#,azure,azure-table-storage,C#,Azure,Azure Table Storage,我有一个包含n个表的表存储器,表1到表n。我需要对这些表执行迭代,并从每个表中的一行读取时间戳值 这是我的密码: var storageAccount = CloudStorageAccount.Parse(storageConnectionString); var tableClient = storageAccount.CreateCloudTableClient(); var tables = tableClient.ListTables()

我有一个包含n个表的表存储器,表1到表n。我需要对这些表执行迭代,并从每个表中的一行读取时间戳值

这是我的密码:

        var storageAccount = CloudStorageAccount.Parse(storageConnectionString);
        var tableClient = storageAccount.CreateCloudTableClient();
        var tables = tableClient.ListTables();
        foreach (var table in tables)
        {
            // read timestamp value in a table row
            var query = new TableQuery<PersonEntity>();            
            foreach (var message in table.ExecuteQuery(query))
            {
                Console.WriteLine(message.Timestamp);
                timestampFromTable = message.Timestamp;
                break;
            }       
        }

是否有更好的方法从表中读取行并避免嵌套for循环?

请尝试以下代码:

我正在使用此nuget包:

代码如下所示,请随意更改以满足您的需要:

using Microsoft.Azure.Cosmos.Table;
using System;
using System.Collections.Generic;
using System.Linq;

namespace TableStorageTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var storageConnectionString = "xxxx";
            var storageAccount = CloudStorageAccount.Parse(storageConnectionString);
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

            //define which column which be fetched
            List<string> mylist = new List<string>() { "Timestamp" };

            var tables = tableClient.ListTables();

            foreach (var table in tables)
            {
                // read timestamp value in a table row
                var query = new TableQuery<CustomerEntity>()
                    .Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "ivan4")).Select(mylist);

                var result = table.ExecuteQuery(query).ToList();

                if (result.Count >0)
                {
                    var r = result[0].Timestamp;

                    Console.WriteLine(r);
                }

            }

            Console.WriteLine("**completed**");
            Console.ReadLine();
        }
    }
}

如果您对此有更多问题,请告诉我。

我不知道。你可以并行完成,这就是我们在我使用AZ表的系统上所做的。你能帮我理解你所说的“并行”是什么意思吗?例如,使用parallel.foreach同时从n个表中获取行。即您将在不同线程上同时获取t1、t2、t3行