Azure Function App无法将表绑定到类型“Microsoft.WindowsAzure.Storage.Table.CloudTable”

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;”,但即使在更改引用后,我仍然收到相同的错误消息。我还检查了版本,它们是正确的。当我更改宇宙参考时,我也更改了我的包参考。我删除了,因为我之前在多个参考文献中遇到过问题。

有什么想法可能是错的吗?

Mar*_*yer 5

请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)