Aspire.Microsoft.EntityFrameworkCore.Cosmos
8.0.0-preview.1.23557.2
Prefix Reserved
See the version list below for details.
dotnet add package Aspire.Microsoft.EntityFrameworkCore.Cosmos --version 8.0.0-preview.1.23557.2
NuGet\Install-Package Aspire.Microsoft.EntityFrameworkCore.Cosmos -Version 8.0.0-preview.1.23557.2
<PackageReference Include="Aspire.Microsoft.EntityFrameworkCore.Cosmos" Version="8.0.0-preview.1.23557.2" />
paket add Aspire.Microsoft.EntityFrameworkCore.Cosmos --version 8.0.0-preview.1.23557.2
#r "nuget: Aspire.Microsoft.EntityFrameworkCore.Cosmos, 8.0.0-preview.1.23557.2"
// Install Aspire.Microsoft.EntityFrameworkCore.Cosmos as a Cake Addin #addin nuget:?package=Aspire.Microsoft.EntityFrameworkCore.Cosmos&version=8.0.0-preview.1.23557.2&prerelease // Install Aspire.Microsoft.EntityFrameworkCore.Cosmos as a Cake Tool #tool nuget:?package=Aspire.Microsoft.EntityFrameworkCore.Cosmos&version=8.0.0-preview.1.23557.2&prerelease
Aspire.Microsoft.EntityFrameworkCore.Cosmos library
Registers EntityFrameworkCore DbContext in the DI container for connecting to Azure Cosmos DB. Enables connection pooling, logging and telemetry.
Getting started
Prerequisites
- CosmosDB database and connection string for accessing the database.
Install the package
Install the .NET Aspire Microsoft EntityFrameworkCore Cosmos library with [NuGet][nuget]:
dotnet add package Aspire.Microsoft.EntityFrameworkCore.Cosmos
Usage example
In the Program.cs file of your project, call the AddCosmosDbContext
extension method to register a DbContext
for use via the dependency injection container. The method takes a connection name parameter.
builder.AddCosmosDbContext<MyDbContext>("cosmosdb");
You can then retrieve the MyDbContext
instance using dependency injection. For example, to retrieve the context from a Web API controller:
private readonly MyDbContext _context;
public ProductsController(MyDbContext context)
{
_context = context;
}
Configuration
The .NET Aspire Microsoft EntityFrameworkCore Cosmos component provides multiple options to configure the database connection based on the requirements and conventions of your project.
Use a connection string
When using a connection string from the ConnectionStrings
configuration section, you can provide the name of the connection string when calling builder.AddCosmosDbContext()
:
builder.AddCosmosDbContext<MyDbContext>("myConnection");
And then the connection string will be retrieved from the ConnectionStrings
configuration section:
{
"ConnectionStrings": {
"myConnection": "AccountEndpoint=https://{account_name}.documents.azure.com:443/;AccountKey={account_key};"
}
}
See the ConnectionString documentation for more information.
Use configuration providers
The .NET Aspire Microsoft EntityFrameworkCore Cosmos component supports Microsoft.Extensions.Configuration. It loads the EntityFrameworkCoreCosmosDBSettings
from configuration by using the Aspire:Microsaoft:EntityFrameworkCore:Cosmos
key. Example appsettings.json
that configures some of the options:
{
"Aspire": {
"Microsoft": {
"EntityFrameworkCore": {
"Cosmos": {
"DbContextPooling": true,
"Tracing": false
}
}
}
}
}
Use inline delegates
Also you can pass the Action<EntityFrameworkCoreCosmosDBSettings> configureSettings
delegate to set up some or all the options inline, for example to disable tracing from code:
builder.AddCosmosDbContext<MyDbContext>("cosmosdb", settings => settings.Tracing = false);
AppHost extensions
In your AppHost project, add a Cosmos DB connection and consume the connection using the following methods::
var cosmosdb = builder.AddAzureCosmosDB("cdb").AddDatabase("cosmosdb");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(cosmosdb);
The WithReference
method configures a connection in the MyService
project named cosmosdb
. In the Program.cs file of MyService
, the database connection can be consumed using:
builder.AddCosmosDbContext<MyDbContext>("cosmosdb");
Additional documentation
- https://learn.microsoft.com/ef/core/
- https://github.com/dotnet/aspire/tree/main/src/Components/README.md
Feedback & contributing
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Azure.Identity (>= 1.10.3)
- Microsoft.Azure.Cosmos (>= 3.36.0-preview)
- Microsoft.EntityFrameworkCore.Cosmos (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.0)
- OpenTelemetry.Extensions.Hosting (>= 1.7.0-alpha.1)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.0.0-beta.8)
- OpenTelemetry.Instrumentation.EventCounters (>= 1.5.1-alpha.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
9.0.0 | 690 | 11/12/2024 |
9.0.0-rc.1.24511.1 | 360 | 10/15/2024 |
8.2.2 | 1,086 | 10/24/2024 |
8.2.1 | 5,581 | 9/26/2024 |
8.2.0 | 4,241 | 8/29/2024 |
8.1.0 | 1,884 | 7/23/2024 |
8.0.2 | 859 | 6/28/2024 |
8.0.1 | 5,886 | 5/21/2024 |
8.0.0 | 124 | 5/21/2024 |
8.0.0-preview.7.24251.11 | 360 | 5/7/2024 |
8.0.0-preview.6.24214.1 | 504 | 4/23/2024 |
8.0.0-preview.5.24201.12 | 266 | 4/9/2024 |
8.0.0-preview.4.24156.9 | 554 | 3/12/2024 |
8.0.0-preview.3.24105.21 | 304 | 2/13/2024 |
8.0.0-preview.2.23619.3 | 720 | 12/20/2023 |
8.0.0-preview.1.23557.2 | 315 | 11/14/2023 |