了解点操作

已完成

Microsoft.Azure.Cosmos 库包括对 C# 语言中泛型的一流支持,这对于作为开发人员的你来说很重要,因为你需要考虑如何表示容器中要交互的内容。

可以在最基础的级别,创建一个 C# 类来表示容器中至少包含两个成员的项:

  • 名为 id 的字符串属性,具有一个公共 getter 和 setter
  • 与具有公共 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; }

从现在开始到本模块结束,我们将创建一个虚构方案。 我们有一个 Product 类,它有五个成员,分别代表唯一 id、产品名称、唯一类别标识符、价格和一个标记集合。 类别标识符是容器的分区键路径

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# 成员名称,则可以将属性特性作为一种方法来重复使用类型,且不存在严重更改现有代码或产生技术债务的风险。