EF Core Azure Cosmos DB Provider Limitations

The Cosmos provider has a number of limitations. Many of these limitations are a result of limitations in the underlying Cosmos database engine and are not specific to EF. But most simply haven't been implemented yet.

These are some of the commonly requested features:

Azure Cosmos DB SDK limitations

  • Only async methods are provided


Since there are no sync versions of the low level methods EF Core relies on, the corresponding functionality is currently implemented by calling .Wait() on the returned Task. This means that using methods like SaveChanges, or ToList instead of their async counterparts could lead to a deadlock in your application

Azure Cosmos DB limitations

You can see the full overview of Azure Cosmos DB supported features, these are the most notable differences compared to a relational database:

  • Client-initiated transactions are not supported
  • Some cross-partition queries are slower depending on the operators involved (for example Skip/Take or OFFSET LIMIT)