C# 为什么CreateTableClient不存在?
我是一个新的azure table用户,我正在尝试向表中写入一些内容。请有人解释一下storageAccount.CreateTableClient无法工作的原因C# 为什么CreateTableClient不存在?,c#,azure,azure-table-storage,azure-tablequery,C#,Azure,Azure Table Storage,Azure Tablequery,我是一个新的azure table用户,我正在尝试向表中写入一些内容。请有人解释一下storageAccount.CreateTableClient无法工作的原因 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensi
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软件包: Microsoft.Azure.Cosmos.Table Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.Json Microsoft.Extensions.Configuration.Binder 然后: 也许您仍然可以使用旧的nuget软件包使其与Azure存储一起工作,但我担心您不会有最新版本的软件包
我相信您会遇到这个错误,因为您在代码中使用了两个不同的存储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的定义。不起作用并没有真正的帮助。什么不工作,你得到空值,一个异常。请说得更具体些。
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;
}