Informazioni sulle operazioni con punti

Completato

La libreria Microsoft.Azure.Cosmos include un supporto ottimale per i generics nel linguaggio C#, rendendo fondamentale per lo sviluppatore pensare a come vuole rappresentare ciò con cui interagisce all'interno del contenitore.

Al livello più elementare, si può creare una classe C# che rappresenti un elemento del contenitore e che contenga almeno due membri:

  • una proprietà string denominata id con un getter e un setter pubblici
  • una proprietà string con lo stesso nome del percorso della chiave di partizione con un getter e un setter pubblici
public class item
{
    public string id { get; set; }

    public string partitionKey { get; set; }
}

È possibile includere un'ampia raccolta di altri membri di altri tipi. È persino possibile avere altri membri di tipi complessi diversi, ad esempio altre classi.

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

È il momento di definire uno scenario fittizio il resto di questo modulo. È presente una classe Product con cinque membri per l'ID univoco, il nome del prodotto, l'identificatore univoco della categoria, il prezzo e una raccolta di tag. L'identificatore della categoria è il percorso della chiave di partizione del contenitore.

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

Questa implementazione è una classe C# incredibilmente versatile che qualsiasi sviluppatore può scegliere e usare immediatamente. Si supponga che, per qualsiasi motivo, sia necessario cambiare il nome delle proprietà in base alle esigenze aziendali. In questo caso, è possibile usare gli attributi delle proprietà per dissociare il nome della proprietà usata nel codice C# dal nome della proprietà usata in JSON e, di fatto, in Azure Cosmos DB for NoSQL. In questo esempio, è possibile usare il nome InternalId nel codice C# e continuare a usare l'identificatore id in JSON e in Azure Cosmos DB for NoSQL.

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

Suggerimento

Se esiste un'applicazione con nomi di membri C# che non è possibile modificare, gli attributi delle proprietà sono un modo per riutilizzare i tipi senza rischiare di modificare il codice esistente in modo significativo o di incorrere nel debito tecnico.