Windows 앱에서 Cosmos DB 데이터베이스 사용

이 문서에는 Windows 앱에서 Cosmos DB 데이터베이스 작업을 사용하도록 설정하는 데 필요한 단계를 포함하고 있습니다. 코드로 데이터베이스와 상호 작용하는 방법을 보여주는 작은 코드 조각도 포함되어 있습니다.

솔루션 설정

이 예제를 WPF, Windows Forms, WinUI 3, UWP 프로젝트와 함께 사용하여 Windows 앱을 Cosmos DB 데이터베이스에 연결할 수 있습니다. 다음 단계에 따라 패키지를 설치하고 몇 가지 기본 작업에 대한 코드 예제를 사용해 보세요.

패키지 관리자 콘솔을 엽니다(보기 -> 다른 Windows -> 패키지 관리자 콘솔). Install-Package Microsoft.Azure.Cosmos 명령을 사용하여 .NET용 Azure Cosmos DB for NoSQL 클라이언트 라이브러리에 대한 NuGet 패키지를 설치합니다. 이렇게 하면 프로그래밍 방식으로 Cosmos DB 데이터베이스에 액세스할 수 있습니다.

프로젝트를 빌드하고 오류 없이 빌드가 성공했는지 확인합니다.

다음으로 Azure에서 Cosmos DB 인스턴스를 만들어야 합니다. Azure Cosmos DB에서 NoSQL 데이터베이스 계정 만들기의 단계에 따라 이 작업을 수행할 수 있습니다.

샘플 코드를 사용하여 Cosmos DB 작업

다음 샘플 코드는 Azure의 Cosmos DB 인스턴스에서 컨테이너를 가져온 다음 해당 컨테이너에 새 항목을 추가합니다. 그런 다음 Cosmos DB의 NoSQL 쿼리 API를 사용하여 컨테이너에서 항목을 쿼리하고 응답 상태를 출력합니다. 엔드포인트, 인증 키 및 데이터베이스 이름은 이전 섹션에서 만든 Cosmos DB 인스턴스를 기반으로 사용자 지정해야 합니다.

참고

필수 Cosmos DB 설정 및 구성에 대한 정보를 포함한 전체 예는 Azure Cosmos DB for NoSQL을 사용하여 .NET 콘솔 애플리케이션 개발을 참조하세요.

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

참고 항목