Compartir a través de


Tutorial: Uso de una base de datos de Cosmos DB desde una aplicación de Windows

Este artículo contiene los pasos necesarios para habilitar el trabajo con una base de datos de Cosmos DB desde una aplicación de Windows. Además, incluye un pequeño fragmento de código en el que se muestra cómo se puede interactuar con la base de datos en el código.

Configuración de la solución

Este ejemplo se puede usar con cualquier proyecto de WPF, Windows Forms, WinUI y UWP para conectar la aplicación de Windows a una base de datos de Cosmos DB. Siga estos pasos para instalar el paquete y probar el código de ejemplo para realizar algunas tareas básicas.

  1. Abra la consola de Package Manager (Ver -> Otros Windows -> Package Manager Console). Utilice el comando Install-Package Microsoft.Azure.Cosmos para instalar el paquete NuGet para la biblioteca cliente de Azure Cosmos DB para NoSQL para .NET. Esto te permitirá acceder mediante programación a las bases de datos de Cosmos DB.
  2. Compile el proyecto y asegúrese de que la compilación se realizó correctamente sin errores.

A continuación, deberá crear una instancia de Cosmos DB en Azure. Para ello, siga los pasos descritos en Crear una cuenta de base de datos de NoSQL en Azure Cosmos DB.

Trabaje con Cosmos DB con código de muestra

El código de ejemplo siguiente obtiene un contenedor de una instancia de Cosmos DB en Azure y, a continuación, agrega un nuevo elemento a ese contenedor. A continuación, usa la API de consulta NoSQL de Cosmos DB para recuperar el elemento del contenedor y generar el estado de la respuesta. Tenga en cuenta que el punto de conexión, la clave de autenticación y el nombre de la base de datos deberán personalizarse en función de la instancia de Cosmos DB que creó en la sección anterior.

Nota

Para obtener un ejemplo completo, incluida la información sobre la configuración y configuración necesarias de Cosmos DB, consulte Desarrollar una aplicación de consola de .NET con Azure Cosmos DB para NoSQL.

using Microsoft.Azure.Cosmos;

...

public async Task CosmosSample(string endpoint, string authKey)
{
    // CONNECT
    var client = new CosmosClient(
        accountEndpoint: endpoint,
        authKeyOrResourceToken: authKey
    );
    Database database = client.GetDatabase("sample_customers");
    ContainerProperties properties = new(
        id: "customers",
        partitionKeyPath: "/location"
    );
    Container container = await database.CreateContainerIfNotExistsAsync(properties);

    // WRITE DATA
    string customerId = "1234";
    string state = "WA";
    var customer = new
    {
        id = customerId,
        name = "John Doe",
        location = state
    };
    var createResponse = await container.CreateItemAsync(customer);
    Console.WriteLine($"[Status code: {createResponse.StatusCode}]\t{customerId}");

    // READ DATA
    string sql = "SELECT * FROM customers c WHERE c.id = @id";
    var query = new QueryDefinition(
        query: sql
    ).WithParameter("@id", customerId);
    using var feed = container.GetItemQueryIterator<dynamic>(queryDefinition: query);
    var queryResponse = await feed.ReadNextAsync();
    Console.WriteLine($"[Status code: {queryResponse.StatusCode}]\t{customerId}");
}