C# 为什么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

我是一个新的azure table用户,我正在尝试向表中写入一些内容。请有人解释一下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软件包:

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;
}