skills/dotnet/efcore/cosmos-provider

cosmos-provider

Installation
SKILL.md

Cosmos DB Provider

Non-relational provider with its own parallel query pipeline. Uses JSON for document materialization.

When to Use

  • Working on Cosmos SQL generation
  • Working on document storage, partition key configuration, or CosmosClientWrapper

Key Differences from Relational

  • No migrations — use EnsureCreated()
  • Documents as JSON — owned and complex types become embedded objects
  • Partition key configuration required for performance
  • ETag for optimistic concurrency
  • No cross-container joins

Azure Cosmos DB Emulator in Docker

Cosmos tests on Helix start the emulator from the work item via PreCommands that run a Docker container using:

  • eng/testing/run-cosmos-container.ps1
  • eng/testing/run-cosmos-container.sh

These scripts can be invoked locally for testing on machines that don't have the emulator installed, but have docker available.

The Test__Cosmos__SkipConnectionCheck=true env var is set to prevent tests from being skipped when the emulator failed to start.

Weekly Installs
1
Repository
dotnet/efcore
GitHub Stars
14.6K
First Seen
Mar 30, 2026