C# 读取存储帐户中azure表中的一行
我有一个包含n个表的表存储器,表1到表n。我需要对这些表执行迭代,并从每个表中的一行读取时间戳值 这是我的密码: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()
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行