CloudTable.Execute(TableOperation)丢失。我使用错误的NuGet包吗?

时间:2018-03-13 12:46:00

标签: c# azure azure-functions azure-table-storage

我正在编写一个与Azure表通信并操作我的Azure表的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;
}

唯一可用的Execute函数是ExecuteAsync,ExecuteBatchAsync,ExecuteQuerySegmentedAsync和ExecuteQuerySegmentedAsync&lt;&gt;。我错过了什么吗?

编辑:我应该指出Execute功能甚至不会在IntelliSense中显示

3 个答案:

答案 0 :(得分:0)

Azure Function SDK包已引用WindowsAzure.Storage包的版本。根据您的运行时版本,它将成为版本7.28.6

因此,您应该只引用Microsoft.NET.Sdk.Functions包并使用随其引用的任何版本。否则,您可能会遇到与您类似的神秘运行时错误。

解决方案:删除对WindowsAzure.Storage的显式引用以及Functions SDK隐式引用的所有其他包。

答案 1 :(得分:0)

不确定您是如何初始化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);

希望这可能有所帮助。

答案 2 :(得分:0)

不,你没有遗漏任何东西......从现在开始,经典方法(不使用宇宙,甚至使用宇宙,我认为也是这样),SDK上的所有操作似乎都是异步的。那就是所有......我昨晚遇到了同样的惊喜......