End*_*050 9 c# azure azure-storage azure-table-storage async-await
我有一个使用Windows Azure存储客户端3.0工作的基本Azure表存储查询.将此转换为异步查询的最简单方法是什么?是否可以使用异步等待模式?
//Setup the storage account connection
var cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
var cloudTableClient = cloudStorageAccount.CreateCloudTableClient();
var table = cloudTableClient.GetTableReference("SampleTable");
//Get the context
var context = cloudTableClient.GetTableServiceContext();
//Setup the query
var q = from s in table.CreateQuery<SampleEntity>()
where s.PartitionKey == sampleUID.ToString()
select s;
//Get the list
var list = q.ToList();
Run Code Online (Sandbox Code Playgroud)
插入和更新实体有XyzAsync()方法......我必须遗漏一些东西.谢谢您的帮助.
最新版本的SDk现在支持async(nuget).
您可以使用ExecuteSegmentedAsync方法执行查询:
var query = (from s in table.CreateQuery<SampleEntity>()
where s.PartitionKey == sampleUID.ToString() select s)
.AsTableQuery<SampleEntity>();
TableContinuationToken continuationToken = null;
do
{
// Execute the query async until there is no more result
var queryResult = await query.ExecuteSegmentedAsync(continuationToken);
foreach (var entity in queryResult)
{
}
continuationToken = queryResult.ContinuationToken;
} while (continuationToken != null);
Run Code Online (Sandbox Code Playgroud)
我已经转换了本教程的一些示例(如何使用.NET中的表存储):
创建一个表
async Task CreateATable()
{
// Retrieve the storage account from the connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
// Create the table if it doesn't exist.
CloudTable table = tableClient.GetTableReference("people");
await table.CreateIfNotExistsAsync();
}
Run Code Online (Sandbox Code Playgroud)将实体添加到表中
public class CustomerEntity : TableEntity
{
public CustomerEntity(string lastName, string firstName)
{
this.PartitionKey = lastName;
this.RowKey = firstName;
}
public CustomerEntity() { }
public string Email { get; set; }
public string PhoneNumber { get; set; }
}
...
//The script:
// Retrieve the storage account from the connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
// Create the CloudTable object that represents the "people" table.
CloudTable table = tableClient.GetTableReference("people");
// Create a new customer entity.
CustomerEntity customer1 = new CustomerEntity("Harp", "Walter");
customer1.Email = "Walter@contoso.com";
customer1.PhoneNumber = "425-555-0101";
// Create the TableOperation object that inserts the customer entity.
TableOperation insertOperation = TableOperation.Insert(customer1);
// Execute the insert operation.
await table.ExecuteAsync(insertOperation);
Run Code Online (Sandbox Code Playgroud)插入一批实体
// Retrieve the storage account from the connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
// Create the CloudTable object that represents the "people" table.
CloudTable table = tableClient.GetTableReference("people");
// Create the batch operation.
TableBatchOperation batchOperation = new TableBatchOperation();
// Create a customer entity and add it to the table.
CustomerEntity customer1 = new CustomerEntity("Smith", "Jeff");
customer1.Email = "Jeff@contoso.com";
customer1.PhoneNumber = "425-555-0104";
// Create another customer entity and add it to the table.
CustomerEntity customer2 = new CustomerEntity("Smith", "Ben");
customer2.Email = "Ben@contoso.com";
customer2.PhoneNumber = "425-555-0102";
// Add both customer entities to the batch insert operation.
batchOperation.Insert(customer1);
batchOperation.Insert(customer2);
// Execute the batch operation.
await table.ExecuteBatchAsync(batchOperation);
Run Code Online (Sandbox Code Playgroud)等等...
| 归档时间: |
|
| 查看次数: |
8938 次 |
| 最近记录: |