我正在编写一个与Azure表通信并操作我的Azure表的azure函数。但是,CloudTable.Execute函数丢失了,我无法找到解决方法。我已经安装了推荐的软件包:
以下是我的使用陈述:
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中显示
答案 0 :(得分:0)
Azure Function SDK包已引用WindowsAzure.Storage
包的版本。根据您的运行时版本,它将成为版本7.2
或8.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上的所有操作似乎都是异步的。那就是所有......我昨晚遇到了同样的惊喜......