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.
- Even if there is only one entity type without inheritance mapped to a container it still has a discriminator property.
- Entity types with partition keys don't work correctly in some scenarios
Includecalls are not supported
Joincalls are not supported
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
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 either not supported or much slower depending on the operators involved