지점 작업 이해

완료됨

Microsoft.Azure.Cosmos 라이브러리에는 C# 언어의 제네릭에 대한 고급 지원이 포함되어 있으므로, 개발자는 컨테이너 내에서 상호 작용하는 내용을 표현하려는 방법을 고민해야 합니다.

가장 기초적인 수준에서 최소한 두 개의 멤버를 포함하는 컨테이너의 항목을 나타내는 C# 클래스를 만들 수 있습니다.

  • 퍼블릭 getter 및 setter가 있는 id라는 문자열 속성
  • 퍼블릭 getter 및 setter가 있으며 파티션 키 경로와 이름이 같은 문자열 속성
public class item
{
    public string id { get; set; }

    public string partitionKey { get; set; }
}

다른 형식의 다른 멤버의 풍부한 컬렉션을 포함할 수 있습니다. 다른 클래스와 같이 다른 복합 형식의 다른 멤버가 있을 수도 있습니다.

public decimal money { get; set;}

public bool boolean { get; set; }

public string[] set { get; set; }

public double numbers { get; set; }

public int morenumbers { get; set; }

public ComplexClass sophisticated { get; set;}

public List<ComplexType> onetomany { get; set; }

이 모듈의 나머지 부분에 대한 가상 시나리오를 설정해 보겠습니다. 고유 ID, 제품의 이름, 고유 범주 식별자, 가격태그 컬렉션에 대한 5개 멤버를 포함하는 Product 클래스가 있습니다. 범주 식별자는 컨테이너의 파티션 키 경로입니다.

public class Product
{
    public string id { get; set; }
    
    public string name { get; set; }

    public string categoryId { get; set; }

    public double price { get; set; }

    public string[] tags { get; set; }
}

이 구현은 개발자가 즉시 선택하고 사용할 수 있는 매우 다재다능한 C# 클래스입니다. 어떤 이유로든 비즈니스 요구 사항에 맞게 속성 이름을 변경해야 한다고 가정해 보겠습니다. 이 경우 속성 특성을 사용하여 C# 코드에서 사용하는 속성의 이름을 JSON에 사용된 속성의 이름에서 분리하고, 실제로 Azure Cosmos DB for NoSQL에서 연결을 끊을 수 있습니다. 이 예제에서는 C# 코드에서 InternalId라는 이름을 사용하고 JSON 및 Azure Cosmos DB for NoSQL에서 식별자 id를 계속 사용할 수 있습니다.

[JsonProperty(PropertyName = "id")]
public string InternalId { get; set; }

변경할 수 없는 C# 멤버 이름을 사용하는 기존 애플리케이션이 있는 경우 속성 특성은 기존 코드를 크게 변경할 위험이나 기술적인 문제가 발생할 위험 없이 형식을 다시 사용할 수 있는 방법입니다.