Informazioni sulle operazioni con punti
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.