Erste Schritte mit der Azure Cosmos DB-Tabellen-API und Azure Table Storage mit .NET SDKGet started with Azure Cosmos DB Table API and Azure Table storage using the .NET SDK

Tipp

Der Inhalt in diesem Artikel gilt für Azure-Tabellenspeicher und für die Azure Cosmos DB-Tabellen-API.The content in this article applies to Azure Table storage and the Azure Cosmos DB Table API. Die Azure Cosmos DB-Tabellen-API ist ein Premiumangebot für Tabellenspeicher und bietet Tabellen mit optimiertem Durchsatz, globale Verteilung und automatische sekundäre Indizes.The Azure Cosmos DB Table API is a premium offering for table storage that offers throughput-optimized tables, global distribution, and automatic secondary indexes.

Sie können die Azure Cosmos DB-Tabellen-API oder Azure Table Storage verwenden, um strukturierte NoSQL-Daten in der Cloud zu speichern. Dazu wird ein Schlüssel--Attribut-Speicher mit einem schemalosen Design angeboten.You can use the Azure Cosmos DB Table API or Azure Table storage to store structured NoSQL data in the cloud, providing a key/attribute store with a schema less design. Aufgrund der Schemalosigkeit der Azure Cosmos DB-Tabellen-API und von Table Storage ist es einfach, Ihre Daten an die Entwicklung Ihrer Anwendungen anzupassen.Because Azure Cosmos DB Table API and Table storage are schema less, it's easy to adapt your data as the needs of your application evolve. Mit der Azure Cosmos DB-Tabellen-API oder Table Storage können Sie flexible Datasets wie Benutzerdaten für Webanwendungen, Adressbücher, Geräteinformationen und andere Arten von Metadaten speichern, die Ihr Dienst benötigt.You can use Azure Cosmos DB Table API or the Table storage to store flexible datasets such as user data for web applications, address books, device information, or other types of metadata your service requires.

Dieses Tutorial beschreibt ein Beispiel dafür, wie Sie die Microsoft Azure Cosmos DB-Tabellenbibliothek für .NET in Szenarien mit der Azure Cosmos DB-Tabellen-API und Azure Table Storage verwenden.This tutorial describes a sample that shows you how to use the Microsoft Azure Cosmos DB Table Library for .NET with Azure Cosmos DB Table API and Azure Table storage scenarios. Sie müssen die spezifische Verbindung für den Azure-Dienst verwenden.You must use the connection specific to the Azure service. Diese Szenarien werden anhand von C#-Beispielen erläutert, die veranschaulichen, wie Sie Tabellen erstellen, Daten einfügen/aktualisieren, Daten abfragen und die Tabellen löschen.These scenarios are explored using C# examples that illustrate how to create tables, insert/ update data, query data and delete the tables.

VoraussetzungenPrerequisites

Für dieses Beispiel benötigen Sie Folgendes:You need the following to complete this sample successfully:

Erstellen eines Kontos für die Azure Cosmos DB-Tabellen-APICreate an Azure Cosmos DB Table API account

  1. Melden Sie sich in einem neuen Browserfenster beim Azure-Portal an.In a new browser window, sign in to the Azure portal.

  2. Wählen Sie im Menü auf der linken Seite Ressource erstellen aus.In the left menu, select Create a resource.

    Erstellen einer Ressource im Azure-Portal

  3. Wählen Sie auf der Seite Neu die Optionen Datenbanken > Azure Cosmos DB aus.On the New page, select Databases > Azure Cosmos DB.

    Die Bereich „Datenbanken“ im Azure-Portal

  4. Geben Sie auf der Seite Azure Cosmos DB-Konto erstellen die Einstellungen für das neue Azure Cosmos DB-Konto ein:On the Create Azure Cosmos DB Account page, enter the settings for the new Azure Cosmos DB account.

    EinstellungSetting valueValue BeschreibungDescription
    SubscriptionSubscription Ihr AbonnementYour subscription Wählen Sie das Azure-Abonnement aus, das Sie für dieses Azure Cosmos DB-Konto verwenden möchten.Select the Azure subscription that you want to use for this Azure Cosmos DB account.
    RessourcengruppeResource Group Neu erstellen, dann KontonameCreate new, then Account Name Wählen Sie Neu erstellen.Select Create new. Geben Sie dann einen neuen Ressourcengruppenname für Ihr Konto ein.Then enter a new resource group name for your account. Verwenden Sie der Einfachheit halber den gleichen Namen als Azure Cosmos DB-Kontonamen.For simplicity, use the same name as your Azure Cosmos DB account name.
    KontonameAccount Name Ein eindeutiger NameA unique name Geben Sie einen eindeutigen Namen ein, der Ihr Azure Cosmos DB-Konto identifiziert.Enter a unique name to identify your Azure Cosmos DB account.

    Der Kontoname darf nur Kleinbuchstaben, Ziffern und Bindestriche (-) enthalten und muss zwischen 3 und 31 Zeichen lang sein.The account name can use only lowercase letters, numbers, and hyphens (-), and must be between 3 and 31 characters long.
    APIAPI TabelleTable Die API bestimmt den Typ des zu erstellenden Kontos.The API determines the type of account to create. Azure Cosmos DB stellt fünf APIs bereit: Kern-API (SQL) für Dokumentdatenbanken, Gremlin-API für Graphdatenbanken, MongoDB-API für Dokumentdatenbanken, Azure-Tabellen-API und Cassandra-API.Azure Cosmos DB provides five APIs: Core (SQL) for document databases, Gremlin for graph databases, MongoDB for document databases, Azure Table, and Cassandra. Sie müssen ein separates Konto für jede API erstellen.You must create a separate account for each API.

    Wählen Sie Azure Table aus, da Sie mit dieser Schnellstartanleitung eine Tabelle erstellen, die mit der Tabellen-API verwendet werden kann.Select Azure Table, because in this quickstart you are creating a table that works with the Table API.

    Weitere Informationen zur Tabellen-APILearn more about the Table API.
    LocationLocation Die Region, die Ihren Benutzern am nächsten liegtThe region closest to your users Wählen Sie einen geografischen Standort aus, an dem Ihr Azure Cosmos DB-Konto gehostet werden soll.Select a geographic location to host your Azure Cosmos DB account. Verwenden Sie einen Standort, der Ihren Benutzern am nächsten liegt, um ihnen einen schnellen Zugriff auf die Daten zu gewähren.Use the location that's closest to your users to give them the fastest access to the data.

    Sie können für die Optionen Georedundanz und Schreibvorgänge in mehreren Regionen die Standardwerte beibehalten (Deaktivieren), um zusätzliche Gebühren zu vermeiden, und die Abschnitte Netzwerk und Tags überspringen.You can leave the Geo-Redundancy and Multi-region Writes options at Disable to avoid additional charges, and skip the Network and Tags sections.

  5. Wählen Sie Bewerten + erstellen aus.Select Review+Create. Wählen Sie nach Abschluss der Validierung Erstellen aus, um das Konto zu erstellen.After the validation is complete, select Create to create the account.

    Die Seite „Neues Konto“ für Azure Cosmos DB

  6. Die Erstellung des Kontos dauert einige Minuten.It takes a few minutes to create the account. Es wird folgende Meldung angezeigt: Ihre Bereitstellung wird ausgeführt.You'll see a message that states Your deployment is underway. Warten Sie, bis die Bereitstellung abgeschlossen ist, und wählen Sie dann Zu Ressource wechseln aus.Wait for the deployment to finish, and then select Go to resource.

    Der Bereich „Benachrichtigungen“ im Azure-Portal

Erstellen eines .NET-KonsolenprojektsCreate a .NET console project

Erstellen Sie in Visual Studio eine neue .NET-Konsolenanwendung.In Visual Studio, create a new .NET console application. In den folgenden Schritten wird veranschaulicht, wie Sie eine Konsolenanwendung in Visual Studio 2019 erstellen.The following steps show you how to create a console application in Visual Studio 2019. Sie können die Azure Cosmos DB-Tabellenbibliothek in jeder Art von .NET-Anwendung nutzen, z.B. einem Azure-Clouddienst, einer Azure-Web-App, einer Desktopanwendung oder einer mobilen Anwendung.You can use the Azure Cosmos DB Table Library in any type of .NET application, including an Azure cloud service or web app, and desktop and mobile applications. In diesem Leitfaden verwenden wir der Einfachheit halber eine Konsolenanwendung.In this guide, we use a console application for simplicity.

  1. Klicken Sie auf Datei > Neu > Projekt.Select File > New > Project.

  2. Wählen Sie Konsolen-App (.NET Core) und dann Weiter aus.Choose Console App (.NET Core), and then select Next.

  3. Geben Sie im Feld Projektname einen Namen für Ihre Anwendung ein, z. B. CosmosTableSamples.In the Project name field, enter a name for your application, such as CosmosTableSamples. (Sie können bei Bedarf einen anderen Namen angeben.)(You can provide a different name as needed.)

  4. Klicken Sie auf Erstellen.Select Create.

Alle Codebeispiele in diesem Beispiel können in der Datei Program.cs Ihrer Konsolenanwendung der „Main()“-Methode hinzugefügt werden.All code examples in this sample can be added to the Main() method of your console application's Program.cs file.

Installieren der erforderlichen NuGet-PaketeInstall the required NuGet package

Führen Sie die folgenden Schritte aus, um die NuGet-Pakete abzurufen:To obtain the NuGet package, follow these steps:

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie NuGet-Pakete verwalten aus.Right-click your project in Solution Explorer and choose Manage NuGet Packages.

  2. Suchen Sie online nach Microsoft.Azure.Cosmos.Table, Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Json und Microsoft.Extensions.Configuration.Binder, und wählen Sie Installieren aus, um die Microsoft Azure Cosmos DB-Tabellenbibliothek zu installieren.Search online for Microsoft.Azure.Cosmos.Table, Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Json, Microsoft.Extensions.Configuration.Binder and select Install to install the Microsoft Azure Cosmos DB Table Library.

Konfigurieren der SpeicherverbindungszeichenfolgeConfigure your storage connection string

  1. Navigieren Sie im Azure-Portal zu Ihrem Azure Cosmos-Konto oder Ihrem Table Storage-Konto.From the Azure portal, navigate to your Azure Cosmos account or the Table Storage account.

  2. Öffnen Sie einen der Bereiche Verbindungszeichenfolge oder Zugriffsschlüssel.Open the Connection String or Access keys pane. Kopieren Sie mithilfe der Kopierschaltfläche im rechten Fensterbereich die PRIMÄRE VERBINDUNGSZEICHENFOLGE.Use the copy button on the right side of the window to copy the PRIMARY CONNECTION STRING.

    Anzeigen und Kopieren der primären Verbindungszeichenfolge im Bereich „Verbindungszeichenfolge“

  3. Um Ihre Verbindungszeichenfolge zu konfigurieren, klicken Sie in Visual Studio mit der rechten Maustaste auf Ihr Projekt CosmosTableSamples.To configure your connection string, from visual studio right click on your project CosmosTableSamples.

  4. Wählen Sie Hinzufügen > Neues Element aus.Select Add and then New Item. Erstellen Sie eine neue Datei Settings.json mit dem Dateityp als TypeScript-JSON-Konfiguration.Create a new file Settings.json with file type as TypeScript JSON Configuration File.

  5. Ersetzen Sie den Code in der Datei „Settings.json“ durch den folgenden Code, und weisen Sie Ihre primäre Verbindungszeichenfolge zu:Replace the code in Settings.json file with the following code and assign your primary connection string:

    {
    "StorageConnectionString": <Primary connection string of your Azure Cosmos DB account>
    }
    
  6. Klicken Sie mit der rechten Maustaste auf Ihr Projekt CosmosTableSamples.Right click on your project CosmosTableSamples. Wählen Sie Hinzufügen > Neues Element, und fügen Sie eine Klasse mit dem Namen AppSettings.cs hinzu.Select Add, New Item and add a class named AppSettings.cs.

  7. Fügen Sie AppSettings.cs den folgenden Code hinzu:Add the following code to the AppSettings.cs file. Diese Datei liest die Verbindungszeichenfolge aus der Datei „Settings.json“ und weist sie dem Konfigurationsparameter zu:This file reads the connection string from Settings.json file and assigns it to the configuration parameter:

    namespace CosmosTableSamples
    {
     using Microsoft.Extensions.Configuration;
     public class AppSettings
     {
         public string StorageConnectionString { get; set; }
         public static AppSettings LoadAppSettings()
         {
             IConfigurationRoot configRoot = new ConfigurationBuilder()
                 .AddJsonFile("Settings.json")
                 .Build();
             AppSettings appSettings = configRoot.Get<AppSettings>();
             return appSettings;
         }
     }
    }
    

Analysieren und Überprüfen der VerbindungsdetailsParse and validate the connection details

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt CosmosTableSamples.Right click on your project CosmosTableSamples. Wählen Sie Hinzufügen > Neues Element, und fügen Sie eine Klasse mit dem Namen Common.cs hinzu.Select Add, New Item and add a class named Common.cs. Sie schreiben Code, um die Verbindungsdetails zu überprüfen und eine Tabelle innerhalb dieser Klasse zu erstellen.You will write code to validate the connection details and create a table within this class.

  2. Definieren Sie eine Methode CreateStorageAccountFromConnectionString, wie unten dargestellt.Define a method CreateStorageAccountFromConnectionString as shown below. Diese Methode analysiert die Details der Verbindungszeichenfolge und überprüft, ob der Kontoname und die Schlüsseldaten des Kontos, die in der Datei „Settings.json“ angegeben sind, gültig sind.This method will parse the connection string details and validate that the account name and account key details provided in the "Settings.json" file are valid.

using System;

namespace CosmosTableSamples
{
   using System.Threading.Tasks;
   using Microsoft.Azure.Cosmos.Table;
   using Microsoft.Azure.Documents;

   public class Common
   {
       public static CloudStorageAccount CreateStorageAccountFromConnectionString(string storageConnectionString)
       {
           CloudStorageAccount storageAccount;
           try
           {
               storageAccount = CloudStorageAccount.Parse(storageConnectionString);
           }
           catch (FormatException)
           {
               Console.WriteLine("Invalid storage account information provided. Please confirm the AccountName and AccountKey are valid in the app.config file - then restart the application.");
               throw;
           }
           catch (ArgumentException)
           {
               Console.WriteLine("Invalid storage account information provided. Please confirm the AccountName and AccountKey are valid in the app.config file - then restart the sample.");
               Console.ReadLine();
               throw;
           }

           return storageAccount;
       }
   }
}

Erstellen einer TabelleCreate a Table

Mit der CloudTableClient -Klasse können Sie im Tabellenspeicher gespeicherte Tabellen und Entitäten abrufen.The CloudTableClient class enables you to retrieve tables and entities stored in Table storage. Da wir keine Tabellen im Konto der Cosmos DB-Tabellen-API haben, fügen wir die Methode CreateTableAsync zur Klasse Common.cs hinzu, um eine Tabelle zu erstellen:Because we don’t have any tables in the Cosmos DB Table API account, let’s add the CreateTableAsync method to the Common.cs class to create a table:

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

Sollte der Fehler „503 Dienst nicht verfügbar“ angezeigt werden, werden die erforderlichen Ports für den Konnektivitätsmodus unter Umständen durch eine Firewall blockiert.If you get a "503 service unavailable exception" error, it's possible that the required ports for the connectivity mode are blocked by a firewall. Öffnen Sie zum Beheben des Problems entweder die erforderlichen Ports, oder verwenden Sie die Gatewaymoduskonnektivität wie im folgenden Code gezeigt:To fix this issue, either open the required ports or use the gateway mode connectivity as shown in the following code:

tableClient.TableClientConfiguration.UseRestExecutorForCosmosEndpoint = true;

Definieren der EntitätDefine the entity

Entitäten werden C#-Objekten zugeordnet, indem eine benutzerdefinierte Klasse verwendet wird, die aus TableEntityabgeleitet wurde.Entities map to C# objects by using a custom class derived from TableEntity. Erstellen Sie eine Klasse, mit der die Eigenschaften der Entität definiert werden, um eine Entität zu einer Tabelle hinzuzufügen.To add an entity to a table, create a class that defines the properties of your entity.

Klicken Sie mit der rechten Maustaste auf Ihr Projekt CosmosTableSamples.Right click on your project CosmosTableSamples. Wählen Sie Hinzufügen, Neuer Ordner,und nennen Sie ihn Modell.Select Add, New Folder and name it as Model. Fügen Sie im Ordner „Modell“ eine Klasse namens CustomerEntity.cs hinzu, und fügen Sie den folgenden Code hinzu.Within the Model folder add a class named CustomerEntity.cs and add the following code to it.

namespace CosmosTableSamples.Model
{
    using Microsoft.Azure.Cosmos.Table;
    public class CustomerEntity : TableEntity
    {
        public CustomerEntity()
        {
        }

        public CustomerEntity(string lastName, string firstName)
        {
            PartitionKey = lastName;
            RowKey = firstName;
        }

        public string Email { get; set; }
        public string PhoneNumber { get; set; }
    }
}

Mit dem Code wird eine Entitätsklasse definiert, die den Vornamen des Kunden als Zeilenschlüssel und den Nachnamen als Partitionsschlüssel verwendet.This code defines an entity class that uses the customer's first name as the row key and last name as the partition key. Eine Entität in der Tabelle wird durch die Kombination aus Partitions- und Zeilenschlüssel eindeutig identifiziert.Together, an entity's partition and row key uniquely identify it in the table. Entitäten mit dem gleichen Partitionsschlüssel können schneller abgerufen werden als Entitäten mit unterschiedlichen Partitionsschlüsseln, die Verwendung verschiedener Partitionsschlüssel ermöglicht jedoch eine größere Skalierbarkeit paralleler Vorgänge.Entities with the same partition key can be queried faster than entities with different partition keys but using diverse partition keys allows for greater scalability of parallel operations. Bei Entitäten, die in Tabellen gespeichert werden sollen, muss es sich um einen unterstützten Typ handeln (beispielsweise abgeleitet von der TableEntity-Klasse).Entities to be stored in tables must be of a supported type, for example derived from the TableEntity class. Bei Entitätseigenschaften, die Sie in einer Tabelle speichern möchten, muss es sich um öffentliche Eigenschaften des Typs handeln, und sie müssen sowohl das Abrufen als auch das Festlegen von Werten unterstützen.Entity properties you'd like to store in a table must be public properties of the type, and support both getting and setting of values. Darüber hinaus muss der Entitätstyp einen parameterlosen Konstruktor verfügbar machen.Also, your entity type must expose a parameter-less constructor.

Einfügen oder Zusammenführen einer EntitätInsert or merge an entity

Das folgende Codebeispiel erstellt ein Entitätsobjekt und fügt es der Tabelle hinzu.The following code example creates an entity object and adds it to the table. Die Methode „InsertOrMerge“ innerhalb der Klasse TableOperation wird verwendet, um eine Entität einzufügen oder zusammenzuführen.The InsertOrMerge method within the TableOperation class is used to insert or merge an entity. Danach wird die Methode CloudTable.ExecuteAsyn aufgerufen, um den Vorgang auszuführen.The CloudTable.ExecuteAsync method is called to execute the operation.

Klicken Sie mit der rechten Maustaste auf Ihr Projekt CosmosTableSamples.Right click on your project CosmosTableSamples. Wählen Sie Hinzufügen > Neues Element, und fügen Sie eine Klasse mit dem Namen SamplesUtils.cs hinzu.Select Add, New Item and add a class named SamplesUtils.cs. Diese Klasse speichert den gesamten Code, der für die Durchführung von CRUD-Operationen an den Entitäten erforderlich ist.This class stores all the code required to perform CRUD operations on the entities.

 public static async Task<CustomerEntity> InsertOrMergeEntityAsync(CloudTable table, CustomerEntity entity)
 {
     if (entity == null)
     {
         throw new ArgumentNullException("entity");
     }
     try
     {
         // Create the InsertOrReplace table operation
         TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(entity);

         // Execute the operation.
         TableResult result = await table.ExecuteAsync(insertOrMergeOperation);
         CustomerEntity insertedCustomer = result.Result as CustomerEntity;

         // Get the request units consumed by the current operation. RequestCharge of a TableResult is only applied to Azure Cosmos DB
         if (result.RequestCharge.HasValue)
         {
             Console.WriteLine("Request Charge of InsertOrMerge Operation: " + result.RequestCharge);
         }

         return insertedCustomer;
     }
     catch (StorageException e)
     {
         Console.WriteLine(e.Message);
         Console.ReadLine();
         throw;
     }
 }

Abrufen einer Entität aus einer PartitionGet an entity from a partition

Sie können eine Entität von einer Partition abrufen, indem Sie die Retrieve-Methode der Klasse TableOperation verwenden.You can get entity from a partition by using the Retrieve method under the TableOperation class. Das folgende Codebeispiel ruft den Zeilenschlüssel des Partitionsschlüssels, die E-Mail-Adresse und die Telefonnummer einer Kundenentität ab.The following code example gets the partition key row key, email and phone number of a customer entity. Dieses Beispiel druckt auch die Anforderungseinheiten aus, die für die Abfrage nach der Entität benötigt werden.This example also prints out the request units consumed to query for the entity. Um eine Entität abzufragen, fügen Sie den folgenden Code an die Datei SamplesUtils.cs an:To query for an entity, append the following code to SamplesUtils.cs file:

public static async Task<CustomerEntity> RetrieveEntityUsingPointQueryAsync(CloudTable table, string partitionKey, string rowKey)
    {
      try
      {
        TableOperation retrieveOperation = TableOperation.Retrieve<CustomerEntity>(partitionKey, rowKey);
        TableResult result = await table.ExecuteAsync(retrieveOperation);
        CustomerEntity customer = result.Result as CustomerEntity;
        if (customer != null)
        {
          Console.WriteLine("\t{0}\t{1}\t{2}\t{3}", customer.PartitionKey, customer.RowKey, customer.Email, customer.PhoneNumber);
        }

        // Get the request units consumed by the current operation. RequestCharge of a TableResult is only applied to Azure CosmoS DB 
        if (result.RequestCharge.HasValue)
        {
           Console.WriteLine("Request Charge of Retrieve Operation: " + result.RequestCharge);
        }

        return customer;
        }
        catch (StorageException e)
        {
           Console.WriteLine(e.Message);
           Console.ReadLine();
           throw;
        }
    }

Löschen einer EntitätDelete an entity

Eine Entität kann nach dem Abrufen problemlos gelöscht werden. Verwenden Sie dazu das gleiche Muster wie beim Aktualisieren einer Entität.You can easily delete an entity after you have retrieved it by using the same pattern shown for updating an entity. Durch den nachstehenden Code wird eine Kundenentität aufgerufen und gelöscht.The following code retrieves and deletes a customer entity. Um eine Entität zu löschen, fügen Sie den folgenden Code an die Datei SamplesUtils.cs an:To delete an entity, append the following code to SamplesUtils.cs file:

public static async Task DeleteEntityAsync(CloudTable table, CustomerEntity deleteEntity)
   {
     try
     {
        if (deleteEntity == null)
     {
        throw new ArgumentNullException("deleteEntity");
     }

    TableOperation deleteOperation = TableOperation.Delete(deleteEntity);
    TableResult result = await table.ExecuteAsync(deleteOperation);

    // Get the request units consumed by the current operation. RequestCharge of a TableResult is only applied to Azure CosmoS DB 
    if (result.RequestCharge.HasValue)
    {
       Console.WriteLine("Request Charge of Delete Operation: " + result.RequestCharge);
    }

    }
    catch (StorageException e)
    {
        Console.WriteLine(e.Message);
        Console.ReadLine();
        throw;
    }
}

Ausführen der CRUD-Vorgänge für BeispieldatenExecute the CRUD operations on sample data

Nachdem Sie die Methoden zum Erstellen von Tabellen, Einfügen oder Zusammenführen von Entitäten definiert haben, führen Sie diese Methoden für Beispieldaten aus.After you define the methods to create table, insert or merge entities, run these methods on the sample data. Klicken Sie dafür mit der rechten Maustaste auf Ihr Projekt CosmosTableSamples.To do so, right click on your project CosmosTableSamples. Wählen Sie Hinzufügen > Neues Element aus, fügen Sie eine Klasse mit dem Namen BasicSamples.cs hinzu, und fügen Sie der Klasse den folgenden Code hinzu.Select Add, New Item and add a class named BasicSamples.cs and add the following code to it. Dieser Code erstellt eine Tabelle und fügt Entitäten hinzu.This code creates a table, adds entities to it. Wenn Sie die Entität und Tabelle am Ende des Projekts löschen möchten, entfernen Sie die Kommentare von den Methoden table.DeleteIfExistsAsync() und SamplesUtils.DeleteEntityAsync(table, customer) aus dem folgenden Code:If you wish to delete the entity and table at the end of the project remove the comments from table.DeleteIfExistsAsync() and SamplesUtils.DeleteEntityAsync(table, customer) methods from the following code:

using System;
namespace CosmosTableSamples
{
    using System.Threading.Tasks;
    using Microsoft.Azure.Cosmos.Table;
    using Model;

    class BasicSamples
    {
        public async Task RunSamples()
        {
            Console.WriteLine("Azure Cosmos DB Table - Basic Samples\n");
            Console.WriteLine();

            string tableName = "demo" + Guid.NewGuid().ToString().Substring(0, 5);

            // Create or reference an existing table
            CloudTable table = await Common.CreateTableAsync(tableName);

            try
            {
                // Demonstrate basic CRUD functionality 
                await BasicDataOperationsAsync(table);
            }
            finally
            {
                // Delete the table
                // await table.DeleteIfExistsAsync();
            }
        }

        private static async Task BasicDataOperationsAsync(CloudTable table)
        {
            // Create an instance of a customer entity. See the Model\CustomerEntity.cs for a description of the entity.
            CustomerEntity customer = new CustomerEntity("Harp", "Walter")
            {
                Email = "Walter@contoso.com",
                PhoneNumber = "425-555-0101"
            };

            // Demonstrate how to insert the entity
            Console.WriteLine("Insert an Entity.");
            customer = await SamplesUtils.InsertOrMergeEntityAsync(table, customer);

            // Demonstrate how to Update the entity by changing the phone number
            Console.WriteLine("Update an existing Entity using the InsertOrMerge Upsert Operation.");
            customer.PhoneNumber = "425-555-0105";
            await SamplesUtils.InsertOrMergeEntityAsync(table, customer);
            Console.WriteLine();

            // Demonstrate how to Read the updated entity using a point query 
            Console.WriteLine("Reading the updated Entity.");
            customer = await SamplesUtils.RetrieveEntityUsingPointQueryAsync(table, "Harp", "Walter");
            Console.WriteLine();

            // Demonstrate how to Delete an entity
            //Console.WriteLine("Delete the entity. ");
            //await SamplesUtils.DeleteEntityAsync(table, customer);
            //Console.WriteLine();
        }
    }
}

Der vorherige Code erstellt eine Tabelle, die mit „demo“ beginnt, und die generierte GUID wird an den Tabellennamen angehängt.The previous code creates a table that starts with “demo” and the generated GUID is appended to the table name. Anschließend wird eine Kundenentität mit Vor- und Nachnamen als „Walter Harp“ hinzugefügt und später die Telefonnummer dieses Benutzers aktualisiert.It then adds a customer entity with first and last name as “Harp Walter” and later updates the phone number of this user.

In diesem Tutorial haben Sie Code erstellt, um grundlegende CRUD-Vorgänge an den im Tabellen-API-Konto gespeicherten Daten durchzuführen.In this tutorial, you built code to perform basic CRUD operations on the data stored in Table API account. Sie können auch erweiterte Operationen durchführen. Beispiele hierfür sind das Einfügen von Daten per Batchvorgang, das Abfragen aller Daten oder eines Datenbereichs innerhalb einer Partition oder das Auflisten der im Konto vorhandenen Tabellen, deren Namen mit dem angegebenen Präfix beginnen.You can also perform advanced operations such as – batch inserting data, query all the data within a partition, query a range of data within a partition, Lists tables in the account whose names begin with the specified prefix. Sie können das komplette Beispiel aus dem azure-cosmos-table-dotnet-core-getting-started-GitHub-Repositoy herunterladen.You can download the complete sample form azure-cosmos-table-dotnet-core-getting-started GitHub repository. Die AdvancedSamples.cs -Klasse verfügt über mehr Vorgänge, die Sie für die Daten ausführen können.The AdvancedSamples.cs class has more operations that you can perform on the data.

Ausführen des ProjektsRun the project

Aus Ihrem Projekt CosmosTableSamples.From your project CosmosTableSamples. Öffnen Sie die Klasse Program.cs, und fügen Sie den folgenden Code hinzu, um „BasicSamples“ beim Ausführen des Projekts aufzurufen.Open the class named Program.cs and add the following code to it for calling BasicSamples when the project runs.

using System;

namespace CosmosTableSamples
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Azure Cosmos Table Samples");
            BasicSamples basicSamples = new BasicSamples();
            basicSamples.RunSamples().Wait();
           
            Console.WriteLine();
            Console.WriteLine("Press any key to exit");
            Console.Read();
        }
    }
}

Nun erstellen Sie die Projektmappe, und drücken F5, um das Projekt auszuführen.Now build the solution and press F5 to run the project. Wenn das Projekt ausgeführt wird, sehen Sie die folgende Ausgabe in der Eingabeaufforderung:When the project is run, you will see the following output in the command prompt:

Ausgabe in der Eingabeaufforderung

Wenn der Fehler mit dem Hinweis angezeigt wird, dass die Datei „Settings.json“ beim Ausführen des Projekts nicht gefunden werden kann, können Sie das Problem lösen, indem Sie den Projekteinstellungen den folgenden XML-Eintrag hinzufügen.If you receive an error that says Settings.json file can’t be found when running the project, you can resolve it by adding the following XML entry to the project settings. Klicken Sie mit der rechten Maustaste auf „CosmosTableSamples“, wählen Sie „CosmosTableSamples.csproj bearbeiten“ aus, und fügen Sie die folgende „itemGroup“ hinzu:Right click on CosmosTableSamples, select Edit CosmosTableSamples.csproj and add the following itemGroup:

  <ItemGroup>
    <None Update="Settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>

Jetzt können Sie sich beim Azure-Portal anmelden und überprüfen, ob die Daten in der Tabelle vorhanden sind.Now you can sign into the Azure portal and verify that the data exists in the table.

Ergebnisse im Portal

Nächste SchritteNext steps

Sie können nun mit dem nächsten Tutorial fortfahren, in dem Sie erfahren, wie Sie Daten in das Azure Cosmos DB-Tabellen-API-Konto migrieren können.You can now proceed to the next tutorial and learn how to migrate data to Azure Cosmos DB Table API account.