MDev.Dotnet.Azure.CosmosDb
MDev.Dotnet.Azure.CosmosDb registers Entity Framework Core contexts for Azure Cosmos DB using Azure token credentials.
Installation
dotnet add package MDev.Dotnet.Azure.CosmosDb
Capabilities
- Configuration-based Cosmos DB setup
- Generic
DbContextregistration TokenCredentialand managed identity authentication- Scoped context lifetime
Basic setup
Define the required CosmosDb configuration section. Unknown properties cause registration to fail.
{
"CosmosDb": {
"Endpoint": "https://your-account.documents.azure.com:443/",
"DatabaseName": "MyAppDatabase"
}
}
Register the context with an Azure credential:
using Azure.Identity;
using MDev.Dotnet.Azure.CosmosDb.Startup;
var builder = WebApplication.CreateBuilder(args);
builder.RegisterCosmosDb<MyAppDbContext>(new DefaultAzureCredential());
MyAppDbContext must derive from Microsoft.EntityFrameworkCore.DbContext. The helper calls AddDbContext<T>() and UseCosmos(endpoint, credential, databaseName), so the context uses the standard scoped lifetime. An IServiceCollection overload is also available:
services.RegisterCosmosDb<MyAppDbContext>(
configuration,
credential);
Managed identity
DefaultAzureCredential uses a managed identity automatically in supported Azure hosts. For a user-assigned identity, configure its client ID using the options documented for DefaultAzureCredential.
Grant the identity an appropriate Cosmos DB data-plane role; Azure resource-management roles alone do not grant access to items. Use local developer credentials rather than secrets during development.
Resources
- Getting started
- Source code
- EF Core Azure Cosmos DB provider
- Azure-hosted application authentication
Previous: Azure Container Apps Jobs · Documentation home · Next: Azure Storage Account