SuperAPI AI 工具集

cosmos-provider

数据与分析

查看项目

更新于 10-16 02:24

技能介绍

用途

本资料介绍 EF Core 的 Azure Cosmos DB 提供程序的实现细节,供在修改 Cosmos 相关代码时参考。该提供程序属于非关系型提供程序,具有独立的并行查询管道,并使用 JSON 进行文档物化。

主要能力与关键差异

与关系型提供程序相比,Cosmos DB 提供程序存在以下关键差异:

  • 不使用迁移,改用 EnsureCreated()。
  • 文档以 JSON 形式存储,拥有类型和复杂类型会成为嵌入对象。
  • 为提升性能,需要配置分区键。
  • 使用 ETag 实现乐观并发。
  • 不支持跨容器联接。

使用方式与测试环境

在测试方面,当未设置 Test__Cosmos__DefaultConnection 时,TestEnvironment.InitializeAsync() 会自动启动一个 Testcontainers.CosmosDb 容器。也可以设置该环境变量,以使用现有的模拟器。

对于 Linux 模拟器上不支持的功能,可以使用 [ConditionalFact(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.IsNotLinuxEmulator))] 跳过相关测试。

适用场景

适用于需要了解或修改 EF Core Azure Cosmos DB 提供程序内部实现、查询管道、文档物化、分区键配置、并发控制以及测试环境搭建的开发场景。

限制

资料未提供关于收费、价格、平台支持范围、性能效果或具体使用步骤的更多信息,这些内容暂未提供。