.NET Aspire Microsoft Entity Framework CoreCosmos DB integrace
V tomto článku se dozvíte, jak používat integraci .NET Aspire Microsoft Entity Framework CoreCosmos DB. Knihovna Aspire.Microsoft.EntityFrameworkCore.Cosmos
slouží k registraci System.Data.Entity.DbContext jako jediného System.Data.Entity.DbContext v kontejneru DI pro připojení k AzureAzure Cosmos DB. Umožňuje také odpovídající kontroly stavu, protokolování a telemetrii.
Začít
Pokud chcete začít s integrací .NET Aspire Microsoft Entity Framework CoreCosmos DB, nainstalujte 📦Aspire.Microsoft.EntityFrameworkCore.Cosmos balíček NuGet v projektu client, tj. projekt pro aplikaci, která používá Microsoft Entity Framework CoreCosmos DBclient.
dotnet add package Aspire.Microsoft.EntityFrameworkCore.Cosmos
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v .NET aplikacích.
Příklad využití
V souboru Program.cs projektu, který využívá client, zavolejte rozšíření AddCosmosDbContext a zaregistrujte System.Data.Entity.DbContext pro použití prostřednictvím kontejneru injektáže závislostí.
builder.AddCosmosDbContext<MyDbContext>("cosmosdb");
Potom můžete načíst instanci DbContext pomocí injektáže závislostí. Pokud chcete například načíst client ze služby:
public class ExampleService(MyDbContext context)
{
// Use context...
}
Další informace o použití Entity Framework Core s Azure Cosmos DBnaleznete v tématu Příklady pro Azure Cosmos DB pro sadu NoSQL SDK pro .NET.
Využití hostitele aplikace
Pokud chcete do IDistributedApplicationBuilderpřidat podporu hostování AzureAzure Cosmos DB, nainstalujte balíček NuGet 📦Aspire.Hosting.Azure.CosmosDB v projektu hostování aplikace .
dotnet add package Aspire.Hosting.Azure.CosmosDB
V hostitelském projektu aplikace zaregistrujte integraci .NET Aspire Microsoft Entity Framework CoreCosmos DB a pomocí následujících metod službu využijte:
var builder = DistributedApplication.CreateBuilder(args);
var cosmos = builder.AddAzureCosmosDB("cosmos");
var cosmosdb = cosmos.AddDatabase("cosmosdb");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(cosmosdb);
Spropitné
Pokud chcete použít emulátor AzureAzure Cosmos DB, zřetězte volání metody AddAzureCosmosDB.
cosmosdb.RunAsEmulator();
Konfigurace
Integrace .NET Aspire Microsoft Entity Framework CoreCosmos DB poskytuje několik možností konfigurace připojení Azure Cosmos DB na základě požadavků a konvencí projektu.
Použijte připojovací řetězec
Při použití připojovacího řetězce z oddílu konfigurace ConnectionStrings
můžete při volání builder.AddCosmosDbContext
zadat název připojovacího řetězce:
builder.AddCosmosDbContext<MyDbContext>("CosmosConnection");
A potom se připojovací řetězec načte z oddílu konfigurace ConnectionStrings
.
{
"ConnectionStrings": {
"CosmosConnection": "AccountEndpoint=https://{account_name}.documents.azure.com:443/;AccountKey={account_key};"
}
}
Další informace naleznete v dokumentaci ConnectionString.
Použití zprostředkovatelů konfigurace
Integrace .NET Aspire Microsoft Entity Framework CoreCosmos DB podporuje Microsoft.Extensions.Configuration. Načte EntityFrameworkCoreCosmosSettings z appsettings.json nebo jiných konfiguračních souborů pomocí klíče Aspire:Microsoft:EntityFrameworkCore:Cosmos
. Příklad appsettings.json, který konfiguruje některé z možností:
{
"Aspire": {
"Microsoft": {
"EntityFrameworkCore": {
"Cosmos": {
"DisableTracing": true
}
}
}
}
}
Použití vložených delegátů
Můžete také předat delegáta Action<EntityFrameworkCoreCosmosSettings> configureSettings
a nastavit některé nebo všechny možnosti EntityFrameworkCoreCosmosSettings přímo, například zakázat sledování z kódu.
builder.AddCosmosDbContext<MyDbContext>(
"cosmosdb",
settings => settings.DisableTracing = true);
Kontroly stavu
Integrace .NET.NET Aspire ve výchozím nastavení umožňují kontroly stavu pro všechny služby. Pro více informací viz .NET.NET Aspire přehled integrací.
Integrace .NET Aspire Microsoft Entity Framework CoreCosmos DB v současné době neimplementuje kontroly stavu, i když se to může v budoucích verzích změnit.
Pozorovatelnost a telemetrie
.NET .NET Aspire integrace automaticky nastaví konfigurace pro protokolování, trasování a metriky, které se někdy označují jako pilíře pozorovatelnosti. Další informace o pozorovatelnosti a telemetrii integrace najdete v přehledu integrace .NET.NET Aspire. V závislosti na zálohovací službě můžou některé integrace podporovat pouze některé z těchto funkcí. Například některé integrace podporují protokolování a trasování, ale ne metriky. Funkce telemetrie je také možné zakázat pomocí technik uvedených v části Konfigurace.
Protokolování
Integrace .NET Aspire Microsoft Entity Framework CoreCosmos DB používá následující kategorie protokolů:
- Azure-Cosmos-Operation-Request-Diagnostics
- Microsoft.EntityFrameworkCore.ChangeTracking
- Microsoft.EntityFrameworkCore.Database.Command
- Microsoft.EntityFrameworkCore.Infrastructure
- Microsoft.EntityFrameworkCore.Query
Trasování
Integrace .NET Aspire Microsoft Entity Framework CoreCosmos DB bude generovat následující aktivity trasování pomocí OpenTelemetry:
- Azure. Cosmos.Operation
- OpenTelemetry.Instrumentation.EntityFrameworkCore
Metriky
Integrace .NET Aspire Microsoft Entity Framework CoreCosmos DB v současné době podporuje následující metriky:
- Microsoft.EntityFrameworkCore
- ec_Microsoft_EntityFrameworkCore_active_db_contexts
- ec_Microsoft_EntityFrameworkCore_celkový_počet_dotazů
- ec_Microsoft_EntityFrameworkCore_dotazy_za_sekundu
- ec_Microsoft_EntityFrameworkCore_total_save_changes
- ec_Microsoft_EntityFrameworkCore_save_changes_per_second
- ec_Microsoft_EntityFrameworkCore_compiled_query_cache_hit_rate
- chyba_operace_strategie_celkové_exekuce_entita_Microsoft
- ec_Microsoft_E_strategie_provedeni_selhani_operaci_za_sekundu
- ec_Microsoft_EntityFramew_total_optimistic_concurrency_failures
- ec_Microsoft_EntityF_pořadí_neshod_sekvence_za_sekundu