Aracılığıyla paylaş


Öğretici: Windows uygulamasından Cosmos DB veritabanı kullanma

Bu makale, bir Windows uygulamasından Cosmos DB veritabanıyla çalışmayı etkinleştirmek için gereken adımları içerir. Ayrıca koddaki veritabanıyla nasıl etkileşim kurabileceğinizi gösteren küçük bir kod parçacığı içerir.

Çözümünüzü ayarlama

Bu örnek, Windows uygulamanızı Cosmos DB veritabanına bağlamak için herhangi bir WPF, Windows Forms, WinUI ve UWP projesiyle kullanılabilir. Paketi yüklemek için bu adımları izleyin ve bazı temel görevler için örnek kodu deneyin.

  1. Açın: Package Manager Console (Görünüm -> Diğer Pencereler -> Package Manager Console). Install-Package Microsoft.Azure.Cosmos komutunu kullanarak Azure Cosmos DB for NoSQL istemci kitaplığı için .NET için NuGet paketini yükleyin. Bu, Cosmos DB veritabanlarına program aracılığıyla erişmenizi sağlar.
  2. Projenizi derleyin ve derlemenin hatasız ve başarılı olduğundan emin olun.

Ardından, Azure bir Cosmos DB örneği oluşturmanız gerekir. bunu yapmak için Azure Cosmos DB içinde NoSQL veritabanı hesabı oluşturma adımlarını izleyebilirsiniz.

Örnek kod kullanarak Cosmos DB ile çalışma

Aşağıdaki örnek kod, Azure bir Cosmos DB örneğinden kapsayıcı alır ve bu kapsayıcıya yeni bir öğe ekler. Ardından kapsayıcıdan öğeyi almak ve yanıt durumunu çıkarmak için Cosmos DB'nin NoSQL sorgu API'sini kullanır. Uç nokta, kimlik doğrulama anahtarı ve veritabanı adının önceki bölümde oluşturduğunuz Cosmos DB örneğine göre özelleştirilmesi gerektiğini unutmayın.

Uyarı

Gerekli Cosmos DB kurulumu ve yapılandırması hakkında bilgiler de dahil olmak üzere eksiksiz bir örnek için bkz. NoSQL için Azure Cosmos DB ile .NET konsol uygulaması geliştirme.

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