CloudTable.Execute(TableOperation) 缺失。我使用了错误的 NuGet 包吗?
CloudTable.Execute(TableOperation) is missing. Am I using the wrong NuGet package?
我正在编写一个与我的 Azure table 通信并对其进行操作的 azure 函数。但是,缺少 CloudTable.Execute 函数,我找不到解决方法。我已经安装了推荐的软件包:
- WindowsAzure.Storage v9.1.0
- Microsoft.Azure.Management.Storage v7.1.0
- Microsoft.Azure.Storage.Common v9.0.0.1
- Microsoft.WindowsAzure.ConfigurationManager v3.2.3.
这是我的使用语句:
using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Azure;
//using Microsoft.Azure.Storage; ->Commented this out, not sure if I need it
using Microsoft.WindowsAzure.Storage.Table;
using Microsoft.WindowsAzure.Storage;
这是我的代码
public SickCity GetRow(CloudTable table, string city, string state)
{
TableOperation tOP = TableOperation.Retrieve<SickCity>(city, state);
TableResult result = table.Execute(tOP); //Execute(TableOperation) not found
return result.Result as SickCity;
}
唯一可用的执行函数是 ExecuteAsync、ExecuteBatchAsync、ExecuteQuerySegmentedAsync 和 ExecuteQuerySegmentedAsync<>。我错过了什么吗?
编辑:我应该指出 Execute 函数甚至没有显示在 IntelliSense 中
Azure Function SDK 包已经在引用 WindowsAzure.Storage
包的一个版本。根据您的运行时版本,它将是 7.2
或 8.6
.
版本
因此,您应该只引用 Microsoft.NET.Sdk.Functions
包并使用它引用的任何版本。否则,您可能会遇到类似于您的错误的神秘运行时错误。
解决方案:删除对 WindowsAzure.Storage
的显式引用以及 Functions SDK 隐式引用的所有其他包。
不确定您是如何初始化 CloudTable 对象的。以下是在我的应用程序中适合我的代码:-
CloudStorageAccount account = CloudStorageAccount.Parse(<<connection string>>);
CloudTableClient tableClient = account.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference(<<azure table name>>);
TableOperation retrieveOperation = TableOperation.Retrieve<SickCity>(city, state);
TableResult retrievedResult = table.Execute(retrieveOperation);
希望这可能有所帮助。
不,你什么都没有遗漏...从现在开始,经典的方法(不使用cosmos,甚至使用cosmos,我认为也是这样),SDK上的所有操作似乎都是异步...仅此而已...我 运行 昨晚同样感到惊讶...
我正在编写一个与我的 Azure table 通信并对其进行操作的 azure 函数。但是,缺少 CloudTable.Execute 函数,我找不到解决方法。我已经安装了推荐的软件包:
- WindowsAzure.Storage v9.1.0
- Microsoft.Azure.Management.Storage v7.1.0
- Microsoft.Azure.Storage.Common v9.0.0.1
- Microsoft.WindowsAzure.ConfigurationManager v3.2.3.
这是我的使用语句:
using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Azure;
//using Microsoft.Azure.Storage; ->Commented this out, not sure if I need it
using Microsoft.WindowsAzure.Storage.Table;
using Microsoft.WindowsAzure.Storage;
这是我的代码
public SickCity GetRow(CloudTable table, string city, string state)
{
TableOperation tOP = TableOperation.Retrieve<SickCity>(city, state);
TableResult result = table.Execute(tOP); //Execute(TableOperation) not found
return result.Result as SickCity;
}
唯一可用的执行函数是 ExecuteAsync、ExecuteBatchAsync、ExecuteQuerySegmentedAsync 和 ExecuteQuerySegmentedAsync<>。我错过了什么吗?
编辑:我应该指出 Execute 函数甚至没有显示在 IntelliSense 中
Azure Function SDK 包已经在引用 WindowsAzure.Storage
包的一个版本。根据您的运行时版本,它将是 7.2
或 8.6
.
因此,您应该只引用 Microsoft.NET.Sdk.Functions
包并使用它引用的任何版本。否则,您可能会遇到类似于您的错误的神秘运行时错误。
解决方案:删除对 WindowsAzure.Storage
的显式引用以及 Functions SDK 隐式引用的所有其他包。
不确定您是如何初始化 CloudTable 对象的。以下是在我的应用程序中适合我的代码:-
CloudStorageAccount account = CloudStorageAccount.Parse(<<connection string>>);
CloudTableClient tableClient = account.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference(<<azure table name>>);
TableOperation retrieveOperation = TableOperation.Retrieve<SickCity>(city, state);
TableResult retrievedResult = table.Execute(retrieveOperation);
希望这可能有所帮助。
不,你什么都没有遗漏...从现在开始,经典的方法(不使用cosmos,甚至使用cosmos,我认为也是这样),SDK上的所有操作似乎都是异步...仅此而已...我 运行 昨晚同样感到惊讶...