Cos'è Azure Cosmos DB?

Cosmos DB è un servizio di database globale multi‑model che supporta documenti JSON. Offre latenza inferiore a 10 ms e scala orizzontale automatico.

EF Core fornisce un provider specifico (Microsoft.EntityFrameworkCore.Cosmos) che traduce le query LINQ in operazioni di Cosmos DB.

Configurazione del DbContext

services.AddDbContext(options => options.UseCosmos(
    "AccountEndpoint=https://your-account.documents.azure.com:443/;", 
    "account-key", 
    databaseName: "MyDatabase"));

Definire le partition key nei modelli è fondamentale per massimizzare la performance.

Limitazioni e best practice

  • Le relazioni di tipo one‑to‑many non sono supportate nativamente; utilizzare documenti embedded o collegamenti tramite ID.
  • Mantenere le dimensioni dei document sotto i 2 MB per evitare costi aggiuntivi.

Seguendo queste linee guida, è possibile sfruttare la potenza di EF Core insieme alla flessibilità di Cosmos DB in scenari enterprise.