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.
- 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. - 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}");
}