DbContextOptionsBuilder Klasse

Definition

Stellt eine einfache API-Oberfläche zum Konfigurieren von DbContextOptionsbereit. Datenbanken (und andere Erweiterungen) definieren in der Regel Erweiterungsmethoden für dieses Objekt, mit denen Sie die Datenbankverbindung (und andere Optionen) konfigurieren können, die für einen Kontext verwendet werden sollen.

public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
type DbContextOptionsBuilder = class
    interface IDbContextOptionsBuilderInfrastructure
Public Class DbContextOptionsBuilder
Implements IDbContextOptionsBuilderInfrastructure
Vererbung
DbContextOptionsBuilder
Abgeleitet
Implementiert

Hinweise

Sie können verwendenDbContextOptionsBuilder, um einen Kontext zu konfigurieren, indem Sie einen DbContextOptions externen überschreiben OnConfiguring(DbContextOptionsBuilder) oder erstellen und an den Kontextkonstruktor übergeben.

Weitere Informationen und Beispiele finden Sie unter Verwenden von DbContextOptions .

Konstruktoren

DbContextOptionsBuilder()

Initialisiert eine neue Instanz der DbContextOptionsBuilder -Klasse ohne festgelegte Optionen.

DbContextOptionsBuilder(DbContextOptions)

Initialisiert eine neue Instanz der DbContextOptionsBuilder -Klasse, um eine bestimmte DbContextOptionsweiter zu konfigurieren.

Eigenschaften

IsConfigured

Ruft einen Wert ab, der angibt, ob Optionen konfiguriert wurden.

Options

Ruft die zu konfigurierenden Optionen ab.

Methoden

AddInterceptors(IEnumerable<IInterceptor>)

Fügt IInterceptor Instanzen hinzu, die im Kontext registriert sind.

AddInterceptors(IInterceptor[])

Fügt IInterceptor Instanzen hinzu, die im Kontext registriert sind.

ConfigureLoggingCacheTime(TimeSpan)

Konfiguriert, wie lange EF Core die Protokollierungskonfiguration in bestimmten Hochleistungspfaden zwischenspeichert. Dies bewirkt, dass EF Core potenziell kostspielige Protokollierungsprüfungen überspringt, bedeutet jedoch, dass Änderungen an der Laufzeitprotokollierung (z. B. das Registrieren eines neuen DiagnosticListener nicht sofort berücksichtigt werden).

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Konfiguriert das Laufzeitverhalten von Warnungen, die von Entity Framework generiert werden. Sie können ein Standardverhalten und -verhalten für jeden Warnungstyp festlegen.

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Konfiguriert das Laufzeitverhalten von Warnungen, die von Entity Framework generiert werden. Sie können ein Standardverhalten und -verhalten für jeden Warnungstyp festlegen.

EnableDetailedErrors(Boolean)

Ermöglicht detaillierte Fehler bei der Behandlung von Datenwertausnahmen, die während der Verarbeitung von Speicherabfrageergebnissen auftreten. Solche Fehler treten am häufigsten aufgrund einer Fehlkonfiguration von Entitätseigenschaften auf. Wenn z. B. eine Eigenschaft mit dem Typ "int" konfiguriert ist, die zugrunde liegenden Daten im Speicher jedoch tatsächlich vom Typ "string" sind, wird während der Verarbeitung des Datenwerts zur Laufzeit eine Ausnahme generiert. Wenn diese Option aktiviert ist und ein Datenfehler auftritt, enthält die generierte Ausnahme Details der spezifischen Entitätseigenschaft, die den Fehler generiert hat.

EnableSensitiveDataLogging()

Ermöglicht das Einbeziehen von Anwendungsdaten in Ausnahmemeldungen, Protokollierung usw. Dies kann die Werte umfassen, die Eigenschaften Ihrer Entitätsinstanzen zugewiesen sind, Parameterwerte für Befehle, die an die Datenbank gesendet werden, und andere solche Daten. Sie sollten dieses Flag nur aktivieren, wenn Sie die entsprechenden Sicherheitsmaßnahmen basierend auf der Vertraulichkeit dieser Daten eingerichtet haben.

EnableSensitiveDataLogging(Boolean)

Ermöglicht das Einbeziehen von Anwendungsdaten in Ausnahmemeldungen, Protokollierung usw. Dies kann die Werte umfassen, die Eigenschaften Ihrer Entitätsinstanzen zugewiesen sind, Parameterwerte für Befehle, die an die Datenbank gesendet werden, und andere solche Daten. Sie sollten dieses Flag nur aktivieren, wenn Sie die entsprechenden Sicherheitsmaßnahmen basierend auf der Vertraulichkeit dieser Daten eingerichtet haben.

EnableServiceProviderCaching(Boolean)

Aktiviert oder deaktiviert die Zwischenspeicherung interner Dienstanbieter. Das Deaktivieren der Zwischenspeicherung kann die Leistung erheblich beeinträchtigen und sollte nur in Testszenarien verwendet werden, in denen viele Dienstanbieter für die Testisolation erstellt werden.

EnableThreadSafetyChecks(Boolean)

Deaktiviert die Parallelitätserkennung, die viele Fälle einer fehlerhaften gleichzeitigen Nutzung einer DbContext Instanz erkennt und dazu führt, dass eine informative Ausnahme ausgelöst wird. Dies bietet eine geringfügige Leistungsverbesserung, aber wenn eine DbContext Instanz gleichzeitig verwendet wird, ist das Verhalten nicht definiert, und das Programm kann auf unvorhersehbare Weise fehlschlagen.

LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>)

Protokolliert Ereignisse, die von einem bereitgestellten benutzerdefinierten Filterdelegaten gefiltert werden. Der Filter sollte true zurückgeben, um eine Nachricht zu protokollieren, oder false, um sie aus dem Protokoll herauszufiltern.

LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>)

Protokolliert die angegebenen Ereignisse mithilfe der angegebenen Aktion. Verwenden Sie optionsBuilder.LogTo(Console.WriteLine, new[] { CoreEventId.ContextInitialized }) beispielsweise , um das ContextInitialized Ereignis in der Konsole zu protokollieren.

LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>)

Protokolliert alle Ereignisse in den angegebenen Kategorien mithilfe der angegebenen Aktion. Verwenden Sie optionsBuilder.LogTo(Console.WriteLine, new[] { DbLoggerCategory.Infrastructure.Name }) beispielsweise , um alle Ereignisse in der DbLoggerCategory.Infrastructure Kategorie zu protokollieren.

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>)

Protokolliert mithilfe der angegebenen Aktion. Verwenden Sie optionsBuilder.LogTo(Console.WriteLine) beispielsweise , um sich bei der Konsole zu protokollieren.

LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>)

Protokolliert Ereignisse in einem benutzerdefinierten Protokollierungsdelegat, der von einem benutzerdefinierten Filterdelegaten gefiltert wird. Der Filter sollte true zurückgeben, um eine Nachricht zu protokollieren, oder false, um sie aus dem Protokoll herauszufiltern.

ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

Ersetzt die interne Entity Framework-Implementierung einer bestimmten Implementierung eines Dienstvertrags durch eine andere Implementierung.

ReplaceService<TService,TImplementation>()

Ersetzt alle internen Entity Framework-Implementierungen eines Dienstvertrags durch eine andere Implementierung.

UseApplicationServiceProvider(IServiceProvider)

Legt die fest, aus der IServiceProvider Anwendungsdienste abgerufen werden. Dies erfolgt automatisch, wenn Sie "AddDbContext" oder "AddDbContextPool" verwenden, daher ist es selten, dass diese Methode aufgerufen werden muss.

UseInternalServiceProvider(IServiceProvider)

Legt den IServiceProvider fest, aus dem der Kontext alle zugehörigen Dienste auflösen soll. EF erstellt und verwaltet einen Dienstanbieter, wenn keiner angegeben ist.

UseLoggerFactory(ILoggerFactory)

Legt den fest, der ILoggerFactory verwendet wird, um Instanzen für die Protokollierung zu erstellen ILogger , die von diesem Kontext ausgeführt wird.

UseMemoryCache(IMemoryCache)

Legt fest, dass für die IMemoryCache Abfragezwischenspeicherung von diesem Kontext verwendet werden soll.

UseModel(IModel)

Legt das Modell fest, das für den Kontext verwendet werden soll. Wenn das Modell festgelegt ist, OnModelCreating(ModelBuilder) wird nicht ausgeführt.

UseQueryTrackingBehavior(QueryTrackingBehavior)

Legt das Nachverfolgungsverhalten für LINQ-Abfragen fest, die für den Kontext ausgeführt werden. Das Deaktivieren der Änderungsnachverfolgung ist für schreibgeschützte Szenarien nützlich, da dadurch der Aufwand beim Einrichten der Änderungsnachverfolgung für jede Entitätsinstanz vermieden wird. Sie sollten die Änderungsnachverfolgung nicht deaktivieren, wenn Sie Entitätsinstanzen bearbeiten und diese Änderungen mithilfe von SaveChanges()in der Datenbank beibehalten möchten.

Explizite Schnittstellenimplementierungen

IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

Fügt den Optionen die angegebene Erweiterung hinzu. Wenn bereits eine Erweiterung desselben Typs vorhanden ist, wird sie ersetzt.

Erweiterungsmethoden

UseCosmos(DbContextOptionsBuilder, String, TokenCredential, String, Action<CosmosDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einer Azure Cosmos-Datenbank herzustellen.

UseCosmos(DbContextOptionsBuilder, String, String, Action<CosmosDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einer Azure Cosmos-Datenbank herzustellen.

UseCosmos(DbContextOptionsBuilder, String, String, String, Action<CosmosDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einer Azure Cosmos-Datenbank herzustellen.

UseInMemoryDatabase(DbContextOptionsBuilder, Action<InMemoryDbContextOptionsBuilder>)
Veraltet.
Veraltet.

Konfiguriert den Kontext zum Herstellen einer Verbindung mit der freigegebenen Legacy-In-Memory-Datenbank. Diese Methode ist veraltet. Verwenden Sie stattdessen UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>).

UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einer benannten In-Memory-Datenbank herzustellen. Die In-Memory-Datenbank wird überall dort freigegeben, wo derselbe Name verwendet wird, aber nur für einen bestimmten Dienstanbieter.

UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einer benannten In-Memory-Datenbank herzustellen. Die In-Memory-Datenbank wird überall dort freigegeben, wo derselbe Name verwendet wird, aber nur für einen bestimmten Dienstanbieter. Um dieselbe In-Memory-Datenbank dienstanbieterübergreifend zu verwenden, rufen Sie UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>) auf, indem Sie eine freigegebene InMemoryDatabaseRoot für die Datenbank übergeben, auf der die Datenbank rooten soll.

UseChangeTrackingProxies(DbContextOptionsBuilder, Boolean, Boolean)

Aktiviert die Erstellung von Änderungsnachverfolgungsproxys.

UseLazyLoadingProxies(DbContextOptionsBuilder, Boolean)

Aktiviert die Erstellung von verzögerten Ladeproxys.

UseSqlite(DbContextOptionsBuilder, Action<SqliteDbContextOptionsBuilder>)

Konfiguriert den Kontext so, dass eine Verbindung mit einer SQLite-Datenbank hergestellt wird, ohne zunächst eine DbConnection Oder-Verbindungszeichenfolge festzulegen.

UseSqlite(DbContextOptionsBuilder, DbConnection, Action<SqliteDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einer SQLite-Datenbank herzustellen.

UseSqlite(DbContextOptionsBuilder, String, Action<SqliteDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einer SQLite-Datenbank herzustellen.

UseSqlServer(DbContextOptionsBuilder, Action<SqlServerDbContextOptionsBuilder>)

Konfiguriert den Kontext so, dass eine Verbindung mit einer Microsoft SQL Server-Datenbank hergestellt wird, ohne zunächst eine DbConnection Oder-Verbindungszeichenfolge festzulegen.

UseSqlServer(DbContextOptionsBuilder, DbConnection, Action<SqlServerDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einer Microsoft SQL Server-Datenbank herzustellen.

UseSqlServer(DbContextOptionsBuilder, String, Action<SqlServerDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einer Microsoft SQL Server-Datenbank herzustellen.

Gilt für