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.