[英]Why the CreateTableClient doesn't exist?
我是一個新的 azure 表用戶,我正在嘗試向表中寫一些東西,有人可以解釋一下為什么 storageAccount.CreateTableClient() 不起作用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Azure.WebJobs;
using Microsoft.WindowsAzure.Storage.Table;
using Microsoft.Extensions.Logging;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.Azure.Storage.Queue;
using Microsoft.Azure.Storage;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
using Microsoft.WindowsAzure.Storage.Blob;
namespace project_3_backend
{
public class Functions
{
private static CloudTable LoanInfo = null;
private static IConfiguration Configuration;
public Functions(IConfiguration configuration)
{
Configuration = configuration;
}
public static void WritetoTable()
{
string connectionString = Configuration.GetValue<String>("AzureWebjobsStorage");
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient tableClient = storageAccount.CreateTableClient();
CloudTable table_mortage = tableClient.GetTableReference("LoanInfo");
}
}
表服務現在在 Cosmos Db 下:
安裝以下 nuget 包:
然后:
public static async Task<CloudTable> CreateTableAsync(string tableName)
{
string storageConnectionString = AppSettings.LoadAppSettings().StorageConnectionString;
// Retrieve storage account information from connection string.
CloudStorageAccount storageAccount = CreateStorageAccountFromConnectionString(storageConnectionString);
// Create a table client for interacting with the table service
CloudTableClient tableClient = storageAccount.CreateCloudTableClient(new TableClientConfiguration());
Console.WriteLine("Create a Table for the demo");
// Create a table client for interacting with the table service
CloudTable table = tableClient.GetTableReference(tableName);
if (await table.CreateIfNotExistsAsync())
{
Console.WriteLine("Created Table named: {0}", tableName);
}
else
{
Console.WriteLine("Table {0} already exists", tableName);
}
Console.WriteLine();
return table;
}
可能您仍然可以使用舊的 nuget 包使其與 Azure 存儲一起使用,但恐怕您不會擁有最新版本的包。
我相信您收到此錯誤是因為您在代碼中使用了兩個不同的 Storage SDK。
您正在使用Microsoft.WindowsAzure.Storage
這是較舊的 SDK 以及Microsoft.Azure.Storage
這是較新的 SDK。 目前,您正在從Microsoft.Azure.Storage
命名空間獲得CloudStorageAccount
的參考,但它沒有CloudTableClient
的定義,因此您收到此錯誤。
一種解決方案是使用Microsoft.Azure.Cosmos.Table
如另一個答案中所述。 往前走,這是推薦的方式。
其他選項是僅使用較舊的 SDK ( Microsoft.WindowsAzure.Storage
)。 在這種情況下,您將從Microsoft.WindowsAzure.Storage
命名空間獲得CloudStorageAccount
,並且它具有CloudTableClient
的定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.