mig*_*ito 4 binding azure azure-storage azure-webjobs azure-functions
我正在开发这个 Azure Function App,只需使用 GET 方法从 Azure 存储表中检索所有用户。当我运行我的应用程序时,我收到错误:
无法将表绑定到类型“Microsoft.WindowsAzure.Storage.Table.CloudTable”。
这是我的代码:
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using System.Linq;
using Microsoft.WindowsAzure.Storage.Table;
using Microsoft.AspNetCore.Builder;
namespace FunctionEncrypt
{
public class GetUser
{
[FunctionName("GetAll")]
public static async Task<IActionResult>
GetAll(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "users")] HttpRequest req,
[Table("user", Connection = "AzureWebJobsStorage")] CloudTable cloudTable,
ILogger log)
{
log.LogInformation("Getting All users");
TableQuery<UserTable>
query = new TableQuery<UserTable>();
var segment = await cloudTable.ExecuteQuerySegmentedAsync(query, null);
var data = segment.Select(UserExtensions.ToUser);
return new OkObjectResult(data);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我研究了这个错误,我寻找的每个地方都说要替换“using Microsoft.WindowsAzure.Storage.Table;” 对于“using Microsoft.Azure.Cosmos.Table;”,但即使在更改引用后,我仍然收到相同的错误消息。我还检查了版本,它们是正确的。当我更改宇宙参考时,我也更改了我的包参考。我删除了,因为我之前在多个参考文献中遇到过问题。
有什么想法可能是错的吗?
请net6.0 v4仅使用以下包:
Microsoft.Azure.WebJobs.Extensions.Tables
这意味着,Microsoft.Azure.WebJobs.Extensions.Storage如果您不使用Table或Queue不绑定,则可以卸载。
最后,您必须清理代码。
删除使用:
using Microsoft.WindowsAzure.Storage.Table;
这也意味着,CloudTable不再可用。
您必须使用TableClient或与TableEntity绑定
请在此处查找示例:
https ://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables
using System.Linq;
using System.Threading.Tasks;
using Azure.Data.Tables;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
namespace FunctionEncrypt
{
public class GetUser
{
[FunctionName("GetAll")]
public static async Task<IActionResult> GetAll(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "users")] HttpRequest req,
[Table("user", Connection = "AzureWebJobsStorage")] TableClient client,
ILogger log)
{
log.LogInformation("Getting All users");
var result = client.Query<Azure.Data.Tables.TableEntity>().ToList();
return new OkObjectResult(result);
}
}
}
Run Code Online (Sandbox Code Playgroud)