Entender as operações de ponto

Concluído

A biblioteca Microsoft.Azure.Cosmos inclui suporte de primeira classe para genéricos na linguagem C#, tornando vital para você, como desenvolvedor, pensar sobre como você quer representar aquilo com que está interagindo dentro de seu contêiner.

No nível mais básico, você pode criar uma classe C# que representa um item em seu contêiner que, no mínimo, contém dois membros:

  • uma propriedade de cadeia de caracteres chamada id com um getter e setter públicos
  • Uma propriedade de cadeia de caracteres com o mesmo nome que o caminho da chave de partição com um getter e um setter públicos
public class item
{
    public string id { get; set; }

    public string partitionKey { get; set; }
}

Você pode incluir uma coleção rica de outros membros de outros tipos. Você pode até mesmo ter outros membros de diferentes tipos complexos, como outras classes.

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

Vamos estabelecer um cenário fictício para o restante deste módulo. Temos uma classe Product com cinco membros para a ID exclusiva, o nome do produto, o identificador de categoria exclusivo, o preço e uma coleção de tags. O identificador de categoria é o caminho da chave de partição para o contêiner.

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

Essa implementação é uma classe C# incrivelmente versátil que qualquer desenvolvedor pode escolher e usar imediatamente. Suponha que, por qualquer motivo, você precisa alterar o nome das propriedades de acordo com suas necessidades de negócios. Nesse caso, você pode usar atributos de propriedade para dissociar o nome da propriedade que você usa no código C# do nome da propriedade usada em JSON e no Azure Cosmos DB for NoSQL. Neste exemplo, você pode usar o nome InternalId no código C# e ainda usar a ID do identificador em JSON e no Azure Cosmos DB for NoSQL.

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

Dica

Se você tem um aplicativo com nomes de membro C# que não podem ser alterados, os atributos de propriedade são uma forma de reutilizar tipos sem o risco de alterar seu código de maneiras significativas ou gerar em dívida técnica.