Komponenta Entity Framework .NET AspireOracle
V tomto článku se dozvíte, jak používat integraci .NET AspireOracleEntity Framework Core. Knihovna Aspire.Oracle.EntityFrameworkCore
se používá pro registraci System.Data.Entity.DbContext jako singleton v DI kontejneru pro připojení k Oracle databázím. Umožňuje také sdružování připojení, opakování, kontroly stavu, protokolování a telemetrii.
Začít
Pro přístup k databázi potřebujete Oracle databázi a připojovací řetězec. Pokud chcete začít s integrací .NET AspireOracleEntity Framework Core, nainstalujte 📦Aspire.Oracle. EntityFrameworkCore balíček NuGet v náročném projektu client.
-
rozhraní příkazového řádku
- Reference balíčku
dotnet add package Aspire.Oracle.EntityFrameworkCore
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v aplikacích .NET.
Příklad využití
V souboru Program.cs vašeho projektu využívajícího clientzavolejte rozšíření AddOracleDatabaseDbContext a zaregistrujte System.Data.Entity.DbContext pro použití prostřednictvím kontejneru vkládání závislostí.
builder.AddOracleDatabaseDbContext<MyDbContext>("oracledb");
Potom můžete načíst instanci DbContext pomocí dependency injection. Pokud chcete například načíst client ze služby:
public class ExampleService(MyDbContext context)
{
// Use context...
}
Možná budete také muset nakonfigurovat konkrétní možnosti Oracle databáze nebo zaregistrovat DbContext
jinými způsoby. V tomto případě volejte metodu rozšíření EnrichOracleDatabaseDbContext
, například:
var connectionString = builder.Configuration.GetConnectionString("oracledb");
builder.Services.AddDbContextPool<MyDbContext>(
dbContextOptionsBuilder => dbContextOptionsBuilder.UseOracle(connectionString));
builder.EnrichOracleDatabaseDbContext<MyDbContext>();
Využití hostitele aplikace
Pokud chcete modelovat prostředek Oracleserver v hostiteli aplikace, nainstalujte NuGet balíček 📦Aspire.Hosting.Oracle v projektu hostitele aplikace .
dotnet add package Aspire.Hosting.Oracle
V projektu hostitele aplikace zaregistrujte kontejner Oracle a pomocí následujících metod využijte připojení:
var builder = DistributedApplication.CreateBuilder(args);
var oracle = builder.AddOracle("oracle");
var oracledb = oracle.AddDatabase("oracledb");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(oracledb);
Pokud chcete explicitně zadat heslo, můžete ho zadat jako parametr. Podívejte se na následující alternativní příklad:
var password = builder.AddParameter("password", secret: true);
var oracle = builder.AddOracle("oracle", password);
var oracledb = oracle.AddDatabase("oracledb");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(oracledb);
Další informace naleznete v tématu Externí parametry.
Konfigurace
Integrace .NET AspireOracleEntity Framework Core poskytuje několik možností konfigurace připojení k databázi 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.AddOracleDatabaseDbContext<TContext>()
zadat název připojovacího řetězce:
builder.AddOracleDatabaseDbContext<MyDbContext>("myConnection");
A poté bude připojovací řetězec načten z konfigurační sekce ConnectionStrings
.
{
"ConnectionStrings": {
"myConnection": "Data Source=TORCL;User Id=myUsername;Password=myPassword;"
}
}
EnrichOracleDatabaseDbContext
nevyužije konfigurační oddíl ConnectionStrings
, protože očekává, že DbContext
bude registrován v okamžiku, kdy se volá.
Další informace naleznete v
Použití zprostředkovatelů konfigurace
Integrace .NET AspireOracleEntity Framework Core podporuje microsoft.Extensions.Configuration. Načte OracleEntityFrameworkCoreSettings
z konfigurace pomocí klíče Aspire:Oracle:EntityFrameworkCore
.
Následující příklad ukazuje appsettings.json, který konfiguruje některé z dostupných možností:
{
"Aspire": {
"Oracle": {
"EntityFrameworkCore": {
"DisableHealthChecks": true,
"DisableTracing": true,
"DisableMetrics": false,
"DisableRetry": false,
"Timeout": 30
}
}
}
}
Rada
Vlastnost Timeout
je v sekundách. Pokud je nastavený jako v předchozím příkladu, časový limit je 30 sekund.
Používejte vložené delegáty
Můžete také předat delegáta Action<OracleEntityFrameworkCoreSettings> configureSettings
a nastavit některé nebo všechny možnosti přímo, například zakázat kontroly stavu přímo v kódu.
builder.AddOracleDatabaseDbContext<MyDbContext>(
"oracle",
static settings => settings.DisableHealthChecks = true);
nebo
builder.EnrichOracleDatabaseDbContext<MyDbContext>(
static settings => settings.DisableHealthChecks = true);
Kontroly stavu
Ve výchozím nastavení integrace .NET.NET Aspire aktivují kontroly stavu pro všechny služby. Další informace naleznete v přehledu integrací .NET.NET Aspire.
Integrace .NET AspireOracleEntity Framework Core registruje základní kontrolu stavu, která kontroluje připojení k databázi s ohledem na TContext
. Kontrola stavu je ve výchozím nastavení povolená a lze ji zakázat pomocí vlastnosti DisableHealthChecks
v konfiguraci.
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 AspireOracleEntity Framework Core používá následující kategorie protokolů:
Microsoft.EntityFrameworkCore.Database.Command.CommandCreated
Microsoft.EntityFrameworkCore.Database.Command.CommandExecuting
Microsoft.EntityFrameworkCore.Database.Command.CommandExecuted
Microsoft.EntityFrameworkCore.Database.Command.CommandError
Trasování
Integrace .NET AspireOracleEntity Framework Core pomocí OpenTelemetryvygeneruje následující aktivity trasování:
- OpenTelemetry. Instrumentation.EntityFrameworkCore
Metriky
Integrace .NET AspireOracleEntity Framework Core aktuálně podporuje následující metriky:
- Microsoft.EntityFrameworkCore
Viz také
-
docs - integrace .NET.NET Aspire
- .NET Aspire GitHub úložiště