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 DbContext registration
  • TokenCredential and 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

Previous: Azure Container Apps Jobs · Documentation home · Next: Azure Storage Account