[英]Retrieving data from azure storage table using azure functions
我正在嘗試使用azure函數從Azure存儲表中檢索特定的列數據。 我正在使用table.ExecuteAsync(TableOperation.Retrieve())方法,但我不知道我正在做的是對的。
static async Task<TableResult> GetAllMessages(CloudTable table, String InvocationName)
{
TableResult x = await table.ExecuteAsync(TableOperation.Retrieve(InvocationName,"1" ));
return x;
}
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route =null)] HttpRequest req,ILogger log)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("models");
var x = await GetAllMessages(table, "InvocationName");
}
Azure Function支持Azure Table綁定。 您可以使用它來讀取或插入表。 您可以從此處獲取詳細信息: Azure功能的Azure表存儲綁定 。
如果您想要讀取多個表行,則需要使用IQueryable
,這是官方文檔中的示例 。
public class TableStorage
{
public class MyPoco : TableEntity
{
public string Text { get; set; }
}
[FunctionName("TableInput")]
public static void TableInput(
[QueueTrigger("table-items")] string input,
[Table("MyTable", "MyPartition")] IQueryable<MyPoco> pocos,
ILogger log)
{
foreach (MyPoco poco in pocos)
{
log.LogInformation($"PK={poco.PartitionKey}, RK={poco.RowKey}, Text={poco.Text}");
}
}
}
所以事實證明我需要創建一個擴展TableEntity並在該類中包含我的表列的類
class model : TableEntity{
public string Name { get; set; }
public override string ToString(){
return " " + Name;
}
}
static async Task<TableResult> GetAllMessages(CloudTable table, String InvocationName)
{
TableResult x = await table.ExecuteAsync(TableOperation.Retrieve(InvocationName,"1" ));
return x;
}
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route =null)] HttpRequest req,ILogger log)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("models");
var x = await GetAllMessages(table, "InvocationName");
string url = ((model)x.Result).ToString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.