Gre*_*aue 4 asp.net-mvc reference azure-storage asp.net-web-api
我刚刚将一个函数从 MVC 应用程序移到了 MVC API 应用程序,出于某种原因,除了CloudTable.Execute
.
代码:
try
{
CloudStorageAccount storageAccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(
"accountName",
"key"), true);
CloudTableClient cloudTableClient = storageAccount.CreateCloudTableClient();
CloudTable table = cloudTableClient.GetTableReference("SkypeUsers");
table.CreateIfNotExistsAsync();
TableOperation retrieveOperation = TableOperation.Retrieve<WorkUser>("Skype", skypeid);
TableResult retrievedResult = table.Execute(retrieveOperation); //Does not work
retrievedSkypeId = ((WorkUser)retrievedResult.Result).RowKey;
}
catch (Exception ex)
{
}
Run Code Online (Sandbox Code Playgroud)
错误:
Error CS1061 'CloudTable' does not contain a definition for 'Execute' and no
extension method 'Execute' accepting a first argument of type 'CloudTable' could
be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)
对 Microsoft.WindowsAzure.Storage 的引用与我在应用程序中使用的版本相同。我试过清理和重建。不确定是什么问题。
编辑:
我的目标是 .NET Core & 使用 assembly Microsoft.WindowsAzure.Storage, Version=9.2.0.0
。在ExecuteQuery
不存在于CloudTable
这个版本。这也可能是你的情况。
用:
table.ExecuteQuerySegmentedAsync(query, null).Result;
Run Code Online (Sandbox Code Playgroud)
ExecuteQuery 同步仍可用于 .NET Framework 版本,但对于 NET Standard,请改用 ExecuteQuerySegmentedAsync。
\n\n\n错误 CS1061 \'CloudTable\' 不包含 \'Execute\' 的定义,并且找不到接受类型为 \'CloudTable\' 的第一个参数的扩展方法 \'Execute\' (您是否缺少 using 指令或装配参考?)
\n
CloudTable.Execute Method (TableOperation,\xe2\x80\x82TableRequestOptions,\xe2\x80\x82OperationContext)接受TableOperation对象作为第一个参数,根据您提供的代码,我们可以发现您确实将 TableOperation 对象传递给Execute方法,它不应该返回错误。请尝试将最新版本的Microsoft Azure Storage Client Library for .NET安装到您的项目中(代码在我这边的 WindowsAzure.Storage v8.0.0 上运行良好)并测试是否会出现相同的问题。您还可以告诉我们您现在使用的WindowsAzure.Storage的版本,然后我们将使用该版本测试代码。
\n\n此外,请尝试使用TableQuery生成查询并调用CloudTable.ExecuteQuery方法来检索实体。
\n\nTableQuery<WorkUser> query = new TableQuery<WorkUser>().Where(\n TableQuery.CombineFilters(\n TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "Skype"),\n TableOperators.And,\n TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, skypeid)));\n\nretrievedSkypeId = table.ExecuteQuery(query).FirstOrDefault().RowKey;\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
3084 次 |
最近记录: |