使用旧版本的 .NET 和 Azure Function Apps v2,可以使用(除其他外)TableContinuationToken 从 Azure 表存储表获取所有数据集: Get more than 1000 datasets from an Azure Table Storage
由于底层 Microsoft.Azure.Cosmos.Table 包已弃用:
基于 .NET 6 的 v4 Azure Function App 中从 Azure 表存储中的表获取所有数据集的新方法是什么?
最佳答案
我已在我的环境中重现了该问题,并且能够获取数据列表。
感谢 @Gaurav Mantri
的评论。
- 在 azure 中创建存储帐户和表。
我使用下面的代码并能够获取数据列表
private void tableInsert()
{
CloudStorageAccount storage_Account = CloudStorageAccount.Parse(storageAccount_connectionString);
CloudTableClient tableClient = storage_Account.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("table1");
for (int ctr = 0; ctr < 1000; ctr++)
{
EmployeeEntity employeeEntity = new EmployeeEntity("Fname"+ctr, "LName"+ctr)
{
Email = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="54273b3931203c3d3a3314273b3931203c3d3a337a373b39" rel="noreferrer noopener nofollow">[email protected]</a>",
PhoneNumber = "123456789"
};
TableOperation insertOperation = TableOperation.Insert(employeeEntity);
table.ExecuteAsync(insertOperation);
}
}
用于获取
public async Task<List<TableEntity>> GetList()
{
CloudTable table = await GetTableAsync();
TableQuery<TableEntity> query = new TableQuery<TableEntity>();
List<TableEntity> results = new List<TableEntity>();
TableContinuationToken continuationToken = null;
do
{
TableQuerySegment<TableEntity> queryResults = await table.ExecuteQuerySegmentedAsync(query, continuationToken);
continuationToken = queryResults.ContinuationToken;
results.AddRange(queryResults.Results);
} while (continuationToken != null);
return results;
}
private async Task<CloudTable> GetTableAsync()
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageAccount_connectionString);
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("table1");
await table.CreateIfNotExistsAsync();
return table;
}
关于c# - 使用 C# 中的 v4 函数应用从 Azure 表存储获取包含所有数据集的完整表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75003574/