gpt4 book ai didi

azure - Azure Function 中没有从表到 ITableEntity 的隐式引用转换

转载 作者:行者123 更新时间:2023-12-03 01:20:04 24 4
gpt4 key购买 nike

我正在编写第一个 Azure Function 和 Azure 表代码。当我编写 Get 查询函数时遇到问题。我有以下代码,它将尝试从表中获取所有作业。

public static class GetJobStatus
{
[FunctionName("GetJobStatus")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
[Table("JobTable")] CloudTable jobTable,
ILogger log)
{
log.LogInformation("Get job status.");

string jobId = req.Query["jobid"];

TableQuery<JobTable> query = new TableQuery<JobTable>();
var segment = await jobTable.ExecuteQuerySegmentedAsync(query, null);
var data = segment.Select(JobExtension.ToJob);

return new OkObjectResult("");
}
}

但是,我在这些语句上遇到编译时错误:

TableQuery<JobTable> query = new TableQuery<JobTable>();
var segment = await jobTable.ExecuteQuerySegmentedAsync(query, null);

我正在尝试粘贴悬停时出现的实际错误消息: enter image description here并且,在 ExecuteQuerySegmentedAsync 方法中获取以下内容 enter image description here

我的JobTable继承自ITableEntity(Azure.Data.Tables):

public class JobTable : ITableEntity
{
public string Id { get; set; }
public DateTime CreatedTime { get; set; }
public JobRequest Request { get; set; }

//ITableEntity Members
public virtual string PartitionKey { get; set; } = "Job";
public virtual string RowKey { get => Id; set => Id = value; }
public DateTimeOffset? Timestamp { get; set; }
public ETag ETag { get; set; }
}

我安装了以下 nuget 软件包: enter image description here

我试图从这个article实现,但它使用较旧的 nuget 包,我遇到了麻烦。

更新#1:

根据 Gaurav Mantri 的建议,为了保持一致,我删除了 Azure.Data.Tables 并开始使用 Microsoft.WindowsAzure.Storage.Table 。这修复了编译时错误。但现在我收到以下运行时错误:

Microsoft.Azure.WebJobs.Host: Error indexing method 'GetJobStatus'. Microsoft.Azure.WebJobs.Extensions.Tables: Can't bind Table to type 'Microsoft.WindowsAzure.Storage.Table.CloudTable'.

更新#2:

我无法使其工作,因此我将所有代码和引用恢复为使用 Microsoft.Azure.Cosmos.Table,如我引用的文章中所述。现在一切都按预期进行。但是,我仍然想看看如何使用较新的库。对于收到的原始问题,Gaurav 的建议已经解决了,所以我现在会接受答案。

最佳答案

我相信您遇到此问题是因为您使用了两种不同的 SDK - Azure.Data.TablesMicrosoft.WindowsAzure.Storage.Table

您的 JobTable 实体从 Azure.Data.Tables 实现 ITableEntity,并且您将其与您的 CloudTable 一起使用来自Microsoft.WindowsAzure.Storage.Table

您可以尝试删除 Azure.Data.Tables 包并仅使用 Microsoft.WindowsAzure.Storage.Table 吗?

关于azure - Azure Function 中没有从表到 ITableEntity 的隐式引用转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71342813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com