Compartir a través de


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

Este artículo contiene los pasos necesarios para poder trabajar con una base de datos Cosmos DB desde una aplicación 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 3 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 del Administrador de paquetes (Ver -> Otras ventanas -> Consola del Administrador de paquetes). Use 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 Creación de una cuenta de base de datos 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 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 necesaria de Cosmos DB, consulte Desarrollo de una aplicación de consola de .NET con Azure Cosmos DB for 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}");
}