Intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB
Dans cet article, vous allez apprendre à utiliser l’intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB. La bibliothèque Aspire.Microsoft.EntityFrameworkCore.Cosmos
est utilisée pour inscrire un System.Data.Entity.DbContext en tant que singleton dans le conteneur DI pour se connecter à AzureAzure Cosmos DB. Il active également les contrôles de santé, la télémétrie et la journalisation correspondantes.
Démarrer
Pour commencer à utiliser l’intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB, installez le paquet NuGet 📦Aspire.Microsoft.EntityFrameworkCore.Cosmos dans le projet client client, c’est-à-dire le projet pour l’application qui utilise Microsoft Entity Framework CoreCosmos DBclient.
dotnet add package Aspire.Microsoft.EntityFrameworkCore.Cosmos
Pour plus d’informations, consultez dotnet add package ou Gérer les dépendances de package dans les applications .NET.
Exemple d’utilisation
Dans le fichier Program.cs de votre projet consommant client, appelez l’extension AddCosmosDbContext pour enregistrer un System.Data.Entity.DbContext à utiliser via le conteneur d’injection de dépendances.
builder.AddCosmosDbContext<MyDbContext>("cosmosdb");
Vous pouvez ensuite récupérer l’instance DbContext à l’aide de l’injection de dépendances. Par exemple, pour récupérer le client à partir d’un service :
public class ExampleService(MyDbContext context)
{
// Use context...
}
Pour plus d’informations sur l’utilisation de Entity Framework Core avec Azure Cosmos DB, consultez les exemples de pour Azure Cosmos DB pour le Kit de développement logiciel (SDK) NoSQL pour .NET.
Utilisation de l’hôte d’application
Pour ajouter
dotnet add package Aspire.Hosting.Azure.CosmosDB
Dans votre projet hôte d’application, inscrivez l’intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB et utilisez le service à l’aide des méthodes suivantes :
var builder = DistributedApplication.CreateBuilder(args);
var cosmos = builder.AddAzureCosmosDB("cosmos");
var cosmosdb = cosmos.AddDatabase("cosmosdb");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(cosmosdb);
Pourboire
Pour utiliser l’émulateur AzureAzure Cosmos DB, chaînez un appel à la méthode AddAzureCosmosDB.
cosmosdb.RunAsEmulator();
Configuration
L’intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB fournit plusieurs options pour configurer la connexion Azure Cosmos DB en fonction des exigences et des conventions de votre projet.
Utiliser une chaîne de connexion
Lorsque vous utilisez une chaîne de connexion à partir de la section de configuration ConnectionStrings
, vous pouvez fournir le nom de la chaîne de connexion lors de l’appel de builder.AddCosmosDbContext
:
builder.AddCosmosDbContext<MyDbContext>("CosmosConnection");
Ensuite, la chaîne de connexion est récupérée à partir de la section de configuration ConnectionStrings
:
{
"ConnectionStrings": {
"CosmosConnection": "AccountEndpoint=https://{account_name}.documents.azure.com:443/;AccountKey={account_key};"
}
}
Pour plus d’informations, consultez la documentation ConnectionString.
Utiliser des fournisseurs de configuration
L’intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB prend en charge Microsoft.Extensions.Configuration. Il charge le EntityFrameworkCoreCosmosSettings depuis appsettings.json ou d'autres fichiers de configuration avec la clé Aspire:Microsoft:EntityFrameworkCore:Cosmos
. Exemple appsettings.json qui configure certaines des options suivantes :
{
"Aspire": {
"Microsoft": {
"EntityFrameworkCore": {
"Cosmos": {
"DisableTracing": true
}
}
}
}
}
Utiliser des délégués intégrés
Vous pouvez également transmettre le délégué Action<EntityFrameworkCoreCosmosSettings> configureSettings
pour configurer certaines ou toutes les options de EntityFrameworkCoreCosmosSettings en ligne, par exemple pour désactiver le suivi dans le code :
builder.AddCosmosDbContext<MyDbContext>(
"cosmosdb",
settings => settings.DisableTracing = true);
Vérifications d’intégrité
Par défaut, .NET.NET Aspire intégrations permettent vérifications de santé pour tous les services. Pour plus d’informations, consultez .NET.NET Aspire vue d’ensemble des intégrations.
L’intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB n’implémente actuellement pas les contrôles d’intégrité, même si cela peut changer dans les versions ultérieures.
Observabilité et télémétrie
.NET .NET Aspire intégrations configurent automatiquement la journalisation, le suivi et les mesures, parfois appelées les piliers de l’observabilité. Pour plus d’informations sur l’observabilité de l’intégration et la télémétrie, consultez .NET.NET Aspire vue d’ensemble des intégrations. Selon le service de stockage, certaines intégrations peuvent uniquement prendre en charge certaines de ces fonctionnalités. Par exemple, certaines intégrations prennent en charge la journalisation et le suivi, mais pas les métriques. Les fonctionnalités de télémétrie peuvent également être désactivées à l’aide des techniques présentées dans la section Configuration.
Exploitation forestière
L’intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB utilise les catégories de journaux suivantes :
- Azure-Cosmos-Operation-Request-Diagnostics
- Microsoft.EntityFrameworkCore.ChangeTracking
- Microsoft.EntityFrameworkCore.Database.Command
- Microsoft.EntityFrameworkCore.Infrastructure
- Microsoft.EntityFrameworkCore.Query
Traçage
L’intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB émettra les activités de suivi suivantes à l’aide de OpenTelemetry:
- Azure. Cosmos.Operation
- OpenTelemetry. Instrumentation.EntityFrameworkCore
Métriques
L’intégration .NET Aspire Microsoft Entity Framework CoreCosmos DB prend actuellement en charge les métriques suivantes :
- Microsoft.EntityFrameworkCore »
- ec_Microsoft_EntityFrameworkCore_active_db_contexts
- ec_Microsoft_EntityFrameworkCore_total_queries
- ec_Microsoft_EntityFrameworkCore_queries_per_second
- Compteur total de modifications enregistrées de ec_Microsoft_EntityFrameworkCore
- ec_Microsoft_EntityFrameworkCore_save_changes_per_second
- ec_Microsoft_EntityFrameworkCore_compiled_query_cache_hit_rate
- ec_Microsoft_Entity_defaillances_strategie_execution_totale_operatio___
- ec_Microsoft_E_stratégie_d'exécution_échecs_d'opération_par_seconde
- ec_Microsoft_EntityFramew_totalité_échecs_concurrence_optimiste
- ec_Microsoft_EntityF_échecs_de_concurrence_optimiste_par_seconde