DbContextOptionsBuilder<TContext> Klasse

Definition

Bietet eine einfache API-Oberfläche zum Konfigurieren von DbContextOptions<TContext> . Datenbanken (und andere Erweiterungen) definieren normalerweise Erweiterungs Methoden für dieses Objekt, mit denen Sie die Datenbankverbindung (und andere Optionen) konfigurieren können, die für einen Kontext verwendet werden sollen.

Sie können verwenden DbContextOptionsBuilder , um einen Kontext zu konfigurieren, indem Sie OnConfiguring(DbContextOptionsBuilder) einen extern überschreiben oder erstellen DbContextOptions und ihn an den kontextkonstruktor übergeben.

public class DbContextOptionsBuilder<TContext> : Microsoft.EntityFrameworkCore.DbContextOptionsBuilder where TContext : DbContext
type DbContextOptionsBuilder<'Context (requires 'Context :> DbContext)> = class
    inherit DbContextOptionsBuilder
Public Class DbContextOptionsBuilder(Of TContext)
Inherits DbContextOptionsBuilder

Typparameter

TContext

Der Typ des Kontexts, der konfiguriert werden soll.

Vererbung
DbContextOptionsBuilder<TContext>

Konstruktoren

DbContextOptionsBuilder<TContext>()

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

DbContextOptionsBuilder<TContext>(DbContextOptions<TContext>)

Initialisiert eine neue Instanz der- DbContextOptionsBuilder<TContext> Klasse, um eine angegebene weiter zu konfigurieren DbContextOptions .

Eigenschaften

IsConfigured

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

Dies kann hilfreich sein, wenn Sie überschrieben haben OnConfiguring(DbContextOptionsBuilder) , um den Kontext zu konfigurieren. in einigen Fällen stellen Sie jedoch auch extern Optionen über den kontextkonstruktor bereit. Diese Eigenschaft kann verwendet werden, um zu bestimmen, ob die Optionen bereits festgelegt wurden, und die gesamte Logik in zu überspringen OnConfiguring(DbContextOptionsBuilder) .

(Geerbt von DbContextOptionsBuilder)
Options

Ruft die Optionen ab, die konfiguriert werden.

Methoden

AddInterceptors(IEnumerable<IInterceptor>)

Fügt IInterceptor den im Kontext registrierten Instanzen hinzu.

Interceptors können verwendet werden, um von Entity Framework vorgenommene Vorgänge anzuzeigen, zu ändern oder zu unterdrücken. Weitere Informationen finden Sie in den spezifischen Implementierungen von IInterceptor . Beispiel: "idbcommandinterceptor".

Eine einzelne Interceptor Instanz kann mehrere verschiedene Interceptor Schnittstellen implementieren. Ich werde als Interceptor für alle Schnittstellen registriert, die implementiert werden.

Erweiterungen können auch mehrere IInterceptor s im internen Dienstanbieter registrieren. Wenn eingefügte und Anwendungs Interceptors gefunden werden, werden die injizierten Interceptors in der Reihenfolge ausgeführt, in der Sie vom Dienstanbieter aufgelöst werden. Anschließend werden die Anwendungs Interceptors in der Reihenfolge ausgeführt, in der Sie dem Kontext hinzugefügt wurden.

Das mehrfache Aufrufen dieser Methode führt dazu, dass alle Interceptors in jedem Aufruf dem Kontext hinzugefügt werden. In einem vorherigen-Befehl hinzugefügte Interceptors werden von Interceptors, die zu einem späteren Zeitpunkt hinzugefügt wurden, nicht überschrieben.

AddInterceptors(IEnumerable<IInterceptor>)

Fügt IInterceptor den im Kontext registrierten Instanzen hinzu.

Interceptors können verwendet werden, um von Entity Framework vorgenommene Vorgänge anzuzeigen, zu ändern oder zu unterdrücken. Weitere Informationen finden Sie in den spezifischen Implementierungen von IInterceptor . Beispiel: "idbcommandinterceptor".

Eine einzelne Interceptor Instanz kann mehrere verschiedene Interceptor Schnittstellen implementieren. Ich werde als Interceptor für alle Schnittstellen registriert, die implementiert werden.

Erweiterungen können auch mehrere IInterceptor s im internen Dienstanbieter registrieren. Wenn eingefügte und Anwendungs Interceptors gefunden werden, werden die injizierten Interceptors in der Reihenfolge ausgeführt, in der Sie vom Dienstanbieter aufgelöst werden. Anschließend werden die Anwendungs Interceptors in der Reihenfolge ausgeführt, in der Sie dem Kontext hinzugefügt wurden.

Das mehrfache Aufrufen dieser Methode führt dazu, dass alle Interceptors in jedem Aufruf dem Kontext hinzugefügt werden. In einem vorherigen-Befehl hinzugefügte Interceptors werden von Interceptors, die zu einem späteren Zeitpunkt hinzugefügt wurden, nicht überschrieben.

(Geerbt von DbContextOptionsBuilder)
AddInterceptors(IInterceptor[])

Fügt IInterceptor den im Kontext registrierten Instanzen hinzu.

Interceptors können verwendet werden, um von Entity Framework vorgenommene Vorgänge anzuzeigen, zu ändern oder zu unterdrücken. Weitere Informationen finden Sie in den spezifischen Implementierungen von IInterceptor . Beispiel: "idbcommandinterceptor".

Erweiterungen können auch mehrere IInterceptor s im internen Dienstanbieter registrieren. Wenn eingefügte und Anwendungs Interceptors gefunden werden, werden die injizierten Interceptors in der Reihenfolge ausgeführt, in der Sie vom Dienstanbieter aufgelöst werden. Anschließend werden die Anwendungs Interceptors in der Reihenfolge ausgeführt, in der Sie dem Kontext hinzugefügt wurden.

Das mehrfache Aufrufen dieser Methode führt dazu, dass alle Interceptors in jedem Aufruf dem Kontext hinzugefügt werden. In einem vorherigen-Befehl hinzugefügte Interceptors werden von Interceptors, die zu einem späteren Zeitpunkt hinzugefügt wurden, nicht überschrieben.

AddInterceptors(IInterceptor[])

Fügt IInterceptor den im Kontext registrierten Instanzen hinzu.

Interceptors können verwendet werden, um von Entity Framework vorgenommene Vorgänge anzuzeigen, zu ändern oder zu unterdrücken. Weitere Informationen finden Sie in den spezifischen Implementierungen von IInterceptor . Beispiel: "idbcommandinterceptor".

Erweiterungen können auch mehrere IInterceptor s im internen Dienstanbieter registrieren. Wenn eingefügte und Anwendungs Interceptors gefunden werden, werden die injizierten Interceptors in der Reihenfolge ausgeführt, in der Sie vom Dienstanbieter aufgelöst werden. Anschließend werden die Anwendungs Interceptors in der Reihenfolge ausgeführt, in der Sie dem Kontext hinzugefügt wurden.

Das mehrfache Aufrufen dieser Methode führt dazu, dass alle Interceptors in jedem Aufruf dem Kontext hinzugefügt werden. In einem vorherigen-Befehl hinzugefügte Interceptors werden von Interceptors, die zu einem späteren Zeitpunkt hinzugefügt wurden, nicht überschrieben.

(Geerbt von DbContextOptionsBuilder)
ConfigureWarnings(Action<WarningsConfigurationBuilder>)

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

Beachten Sie, dass das Ändern dieser Konfiguration dazu führen kann, dass EF einen neuen internen Dienstanbieter erstellt, was zu Leistungsproblemen führen kann. Im Allgemeinen wird erwartet, dass für eine bestimmte Anwendung nicht mehr als eine oder zwei unterschiedliche Konfigurationen verwendet werden.

Beachten Sie Folgendes: Wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) , muss diese Option für alle Verwendungen dieses Dienstanbieters auf dieselbe Weise konfiguriert werden. Sie sollten stattdessen nicht aufrufen UseInternalServiceProvider(IServiceProvider) , damit EF die Dienstanbieter verwaltet und nach Bedarf neue Instanzen erstellen kann.

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

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

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

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

Beachten Sie, dass das Ändern dieser Konfiguration dazu führen kann, dass EF einen neuen internen Dienstanbieter erstellt, was zu Leistungsproblemen führen kann. Im Allgemeinen wird erwartet, dass für eine bestimmte Anwendung nicht mehr als eine oder zwei unterschiedliche Konfigurationen verwendet werden.

Beachten Sie Folgendes: Wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) , muss diese Option für alle Verwendungen dieses Dienstanbieters auf dieselbe Weise konfiguriert werden. Sie sollten stattdessen nicht aufrufen UseInternalServiceProvider(IServiceProvider) , damit EF die Dienstanbieter verwaltet und nach Bedarf neue Instanzen erstellen kann.

(Geerbt von DbContextOptionsBuilder)
ConfigureWarnings(Action<WarningsConfigurationBuilder>)

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

(Geerbt von DbContextOptionsBuilder)
EnableDetailedErrors(Boolean)

Aktiviert ausführliche Fehler bei der Behandlung von Daten Wert Ausnahmen, die während der Verarbeitung von Speicher Abfrage Ergebnissen auftreten. Solche Fehler treten meistens auf, weil die Entitäts Eigenschaften nicht ordnungsgemäß konfiguriert sind. Beispiel: Wenn eine Eigenschaft vom Typ "int" ist, die zugrunde liegenden Daten im Speicher aber tatsächlich den Typ "String" aufweisen, wird während der Verarbeitung des Daten Werts zur Laufzeit eine Ausnahme generiert. Wenn diese Option aktiviert ist und ein Datenfehler auftritt, enthält die generierte Ausnahme Details der spezifischen Entitäts Eigenschaft, die den Fehler generiert hat.

Wenn Sie diese Option aktivieren, wird während der Abfrage Ausführung ein geringer Leistungs Aufwand verursacht.

Beachten Sie Folgendes: Wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) , muss diese Option für alle Verwendungen dieses Dienstanbieters auf dieselbe Weise konfiguriert werden. Sie sollten stattdessen nicht aufrufen UseInternalServiceProvider(IServiceProvider) , damit EF die Dienstanbieter verwaltet und nach Bedarf neue Instanzen erstellen kann.

EnableDetailedErrors(Boolean)

Aktiviert ausführliche Fehler bei der Behandlung von Daten Wert Ausnahmen, die während der Verarbeitung von Speicher Abfrage Ergebnissen auftreten. Solche Fehler treten meistens auf, weil die Entitäts Eigenschaften nicht ordnungsgemäß konfiguriert sind. Beispiel: Wenn eine Eigenschaft vom Typ "int" ist, die zugrunde liegenden Daten im Speicher aber tatsächlich den Typ "String" aufweisen, wird während der Verarbeitung des Daten Werts zur Laufzeit eine Ausnahme generiert. Wenn diese Option aktiviert ist und ein Datenfehler auftritt, enthält die generierte Ausnahme Details der spezifischen Entitäts Eigenschaft, die den Fehler generiert hat.

Wenn Sie diese Option aktivieren, wird während der Abfrage Ausführung ein geringer Leistungs Aufwand verursacht.

Beachten Sie Folgendes: Wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) , muss diese Option für alle Verwendungen dieses Dienstanbieters auf dieselbe Weise konfiguriert werden. Sie sollten stattdessen nicht aufrufen UseInternalServiceProvider(IServiceProvider) , damit EF die Dienstanbieter verwaltet und nach Bedarf neue Instanzen erstellen kann.

(Geerbt von DbContextOptionsBuilder)
EnableSensitiveDataLogging()

Ermöglicht das Einschließen von Anwendungsdaten in Ausnahme Meldungen, Protokollierung usw. Dabei kann es sich um die Werte, die Eigenschaften ihrer Entitäts Instanzen zugewiesen werden, um Parameterwerte für Befehle, die an die Datenbank gesendet werden, sowie um andere solche Daten einschließen. Sie sollten dieses Flag nur aktivieren, wenn Sie abhängig von der Vertraulichkeit dieser Daten über die entsprechenden Sicherheitsmaßnahmen verfügen.

EnableSensitiveDataLogging()

Ermöglicht das Einschließen von Anwendungsdaten in Ausnahme Meldungen, Protokollierung usw. Dabei kann es sich um die Werte, die Eigenschaften ihrer Entitäts Instanzen zugewiesen werden, um Parameterwerte für Befehle, die an die Datenbank gesendet werden, sowie um andere solche Daten einschließen. Sie sollten dieses Flag nur aktivieren, wenn Sie abhängig von der Vertraulichkeit dieser Daten über die entsprechenden Sicherheitsmaßnahmen verfügen.

(Geerbt von DbContextOptionsBuilder)
EnableSensitiveDataLogging(Boolean)

Ermöglicht das Einschließen von Anwendungsdaten in Ausnahme Meldungen, Protokollierung usw. Dabei kann es sich um die Werte, die Eigenschaften ihrer Entitäts Instanzen zugewiesen werden, um Parameterwerte für Befehle, die an die Datenbank gesendet werden, sowie um andere solche Daten einschließen. Sie sollten dieses Flag nur aktivieren, wenn Sie abhängig von der Vertraulichkeit dieser Daten über die entsprechenden Sicherheitsmaßnahmen verfügen.

Beachten Sie Folgendes: Wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) , muss diese Option für alle Verwendungen dieses Dienstanbieters auf dieselbe Weise konfiguriert werden. Sie sollten stattdessen nicht aufrufen UseInternalServiceProvider(IServiceProvider) , damit EF die Dienstanbieter verwaltet und nach Bedarf neue Instanzen erstellen kann.

EnableSensitiveDataLogging(Boolean)

Ermöglicht das Einschließen von Anwendungsdaten in Ausnahme Meldungen, Protokollierung usw. Dabei kann es sich um die Werte, die Eigenschaften ihrer Entitäts Instanzen zugewiesen werden, um Parameterwerte für Befehle, die an die Datenbank gesendet werden, sowie um andere solche Daten einschließen. Sie sollten dieses Flag nur aktivieren, wenn Sie abhängig von der Vertraulichkeit dieser Daten über die entsprechenden Sicherheitsmaßnahmen verfügen.

Beachten Sie Folgendes: Wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) , muss diese Option für alle Verwendungen dieses Dienstanbieters auf dieselbe Weise konfiguriert werden. Sie sollten stattdessen nicht aufrufen UseInternalServiceProvider(IServiceProvider) , damit EF die Dienstanbieter verwaltet und nach Bedarf neue Instanzen erstellen kann.

(Geerbt von DbContextOptionsBuilder)
EnableServiceProviderCaching(Boolean)

Aktiviert oder deaktiviert das Zwischenspeichern interner Dienstanbieter. Das Deaktivieren der Zwischenspeicherung kann sich negativ auf die Leistung auswirken und sollte nur in Testszenarien verwendet werden, in denen viele Dienstanbieter für die Test Isolation erstellt werden.

Beachten Sie Folgendes: Wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) , hat das Festlegen dieser Option keine Auswirkungen.

EnableServiceProviderCaching(Boolean)

Aktiviert oder deaktiviert das Zwischenspeichern interner Dienstanbieter. Das Deaktivieren der Zwischenspeicherung kann sich negativ auf die Leistung auswirken und sollte nur in Testszenarien verwendet werden, in denen viele Dienstanbieter für die Test Isolation erstellt werden.

Beachten Sie Folgendes: Wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) , hat das Festlegen dieser Option keine Auswirkungen.

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

Protokolliert Ereignisse, die von einem angegebenen benutzerdefinierten Filter Delegaten gefiltert werden. Der Filter sollte true zurückgeben, um eine Meldung zu protokollieren, oder false, um Sie aus dem Protokoll herauszufiltern.

Verwenden Sie die- LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung für die Standard Protokollierung aller Ereignisse. Verwenden LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) Sie die Überladung verwenden LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) , um nur Ereignisse in bestimmten Kategorien zu protokollieren. Verwenden Sie die- LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) Überladung, um eine vollständig benutzerdefinierte Protokollierung zu

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

Protokolliert Ereignisse, die von einem angegebenen benutzerdefinierten Filter Delegaten gefiltert werden. Der Filter sollte true zurückgeben, um eine Meldung zu protokollieren, oder false, um Sie aus dem Protokoll herauszufiltern.

Verwenden Sie die- LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung für die Standard Protokollierung aller Ereignisse. Verwenden LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) Sie die Überladung verwenden LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) , um nur Ereignisse in bestimmten Kategorien zu protokollieren. Verwenden Sie die- LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) Überladung, um eine vollständig benutzerdefinierte Protokollierung zu

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

Protokolliert die angegebenen Ereignisse mithilfe der angegebenen Aktion. Verwenden Sie z. b . optionsbuilder. logto (Console. Write teline, New [] {coreeventid. contextinitialized}) , um das ContextInitialized Ereignis an der Konsole zu protokollieren.

Verwenden Sie die- LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung für die Standard Protokollierung aller Ereignisse. Verwenden Sie die- LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung zum Protokollieren von Ereignissen in bestimmten Kategorien. Verwenden LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) Sie die Überladung, um einen benutzerdefinierten Filter für Ereignisse zu verwenden. Verwenden Sie die- LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) Überladung, um eine vollständig benutzerdefinierte Protokollierung zu

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

Protokolliert die angegebenen Ereignisse mithilfe der angegebenen Aktion. Verwenden Sie z. b . optionsbuilder. logto (Console. Write teline, New [] {coreeventid. contextinitialized}) , um das ContextInitialized Ereignis an der Konsole zu protokollieren.

Verwenden Sie die- LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung für die Standard Protokollierung aller Ereignisse. Verwenden Sie die- LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung zum Protokollieren von Ereignissen in bestimmten Kategorien. Verwenden LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) Sie die Überladung, um einen benutzerdefinierten Filter für Ereignisse zu verwenden. Verwenden Sie die- LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) Überladung, um eine vollständig benutzerdefinierte Protokollierung zu

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

Protokolliert alle Ereignisse in den angegebenen Kategorien mithilfe der angegebenen Aktion. Verwenden Sie z. b. optionsbuilder. logto (Console. Write teline, New [] {DbLoggerCategory.Infrastructure.Name}) , um alle Ereignisse in der Kategorie zu protokollieren DbLoggerCategory.Infrastructure .

Verwenden Sie die- LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung für die Standard Protokollierung aller Ereignisse. Verwenden LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) Sie die Überladung, um nur bestimmte Ereignisse zu protokollieren. Verwenden LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) Sie die Überladung, um einen benutzerdefinierten Filter für Ereignisse zu verwenden. Verwenden Sie die- LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) Überladung, um eine vollständig benutzerdefinierte Protokollierung zu

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

Protokolliert alle Ereignisse in den angegebenen Kategorien mithilfe der angegebenen Aktion. Verwenden Sie z. b. optionsbuilder. logto (Console. Write teline, New [] {DbLoggerCategory.Infrastructure.Name}) , um alle Ereignisse in der Kategorie zu protokollieren DbLoggerCategory.Infrastructure .

Verwenden Sie die- LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung für die Standard Protokollierung aller Ereignisse. Verwenden LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) Sie die Überladung, um nur bestimmte Ereignisse zu protokollieren. Verwenden LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) Sie die Überladung, um einen benutzerdefinierten Filter für Ereignisse zu verwenden. Verwenden Sie die- LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) Überladung, um eine vollständig benutzerdefinierte Protokollierung zu

(Geerbt von DbContextOptionsBuilder)
LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>)

Protokolliert mithilfe der angegebenen Aktion. Verwenden Sie beispielsweise optionsbuilder. logto (Console. Write teline) , um sich bei der Konsole anzumelden.

Diese Überladung ermöglicht, dass die minimale Protokollierungsebene und die Protokoll Formatierung gesteuert werden. Verwenden des LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>)s Überladung, um nur bestimmte Ereignisse zu protokollieren. Verwenden Sie die- LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung zum Protokollieren von Ereignissen in bestimmten Kategorien. Verwenden LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) Sie die Überladung, um einen benutzerdefinierten Filter für Ereignisse zu verwenden. Verwenden Sie die- LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) Überladung, um eine vollständig benutzerdefinierte Protokollierung zu

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

Protokolliert mithilfe der angegebenen Aktion. Verwenden Sie beispielsweise optionsbuilder. logto (Console. Write teline) , um sich bei der Konsole anzumelden.

Diese Überladung ermöglicht, dass die minimale Protokollierungsebene und die Protokoll Formatierung gesteuert werden. Verwenden des LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>)s Überladung, um nur bestimmte Ereignisse zu protokollieren. Verwenden Sie die- LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung zum Protokollieren von Ereignissen in bestimmten Kategorien. Verwenden LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) Sie die Überladung, um einen benutzerdefinierten Filter für Ereignisse zu verwenden. Verwenden Sie die- LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) Überladung, um eine vollständig benutzerdefinierte Protokollierung zu

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

Protokolliert Ereignisse in einem benutzerdefinierten Protokollierungs Delegaten, gefiltert nach einem benutzerdefinierten Filter Delegaten. Der Filter sollte true zurückgeben, um eine Meldung zu protokollieren, oder false, um Sie aus dem Protokoll herauszufiltern.

Verwenden Sie die- LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung für die Standard Protokollierung aller Ereignisse. Verwenden LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) Sie die Überladung verwenden LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) , um nur Ereignisse in bestimmten Kategorien zu protokollieren. Verwenden LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) Sie die Überladung, um einen benutzerdefinierten Filter für Ereignisse zu verwenden.

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

Protokolliert Ereignisse in einem benutzerdefinierten Protokollierungs Delegaten, gefiltert nach einem benutzerdefinierten Filter Delegaten. Der Filter sollte true zurückgeben, um eine Meldung zu protokollieren, oder false, um Sie aus dem Protokoll herauszufiltern.

Verwenden Sie die- LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) Überladung für die Standard Protokollierung aller Ereignisse. Verwenden LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) Sie die Überladung verwenden LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) , um nur Ereignisse in bestimmten Kategorien zu protokollieren. Verwenden LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) Sie die Überladung, um einen benutzerdefinierten Filter für Ereignisse zu verwenden.

(Geerbt von DbContextOptionsBuilder)
ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

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

Diese Methode ist nützlich, um eine einzelne Instanz von Diensten zu ersetzen, die im internen EF-Dienstanbieter rechtmäßig mehrmals registriert werden kann.

Diese Methode kann nur verwendet werden, wenn EF ihren internen Dienstanbieter aufbaut und verwaltet. Wenn der Dienstanbieter extern erstellt und an weitergegeben wird UseInternalServiceProvider(IServiceProvider) , sollten die Ersatz Dienste für diesen Dienstanbieter konfiguriert werden, bevor er an EF weitergeleitet wird.

Der Ersatzdienst erhält denselben Bereich wie der zu ersetzende EF-Dienst.

ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

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

Diese Methode ist nützlich, um eine einzelne Instanz von Diensten zu ersetzen, die im internen EF-Dienstanbieter rechtmäßig mehrmals registriert werden kann.

Diese Methode kann nur verwendet werden, wenn EF ihren internen Dienstanbieter aufbaut und verwaltet. Wenn der Dienstanbieter extern erstellt und an weitergegeben wird UseInternalServiceProvider(IServiceProvider) , sollten die Ersatz Dienste für diesen Dienstanbieter konfiguriert werden, bevor er an EF weitergeleitet wird.

Der Ersatzdienst erhält denselben Bereich wie der zu ersetzende EF-Dienst.

(Geerbt von DbContextOptionsBuilder)
ReplaceService<TService,TImplementation>()

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

Diese Methode kann nur verwendet werden, wenn EF ihren internen Dienstanbieter aufbaut und verwaltet. Wenn der Dienstanbieter extern erstellt und an weitergegeben wird UseInternalServiceProvider(IServiceProvider) , sollten die Ersatz Dienste für diesen Dienstanbieter konfiguriert werden, bevor er an EF weitergeleitet wird.

Der Ersatzdienst erhält denselben Bereich wie der zu ersetzende EF-Dienst.

ReplaceService<TService,TImplementation>()

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

Diese Methode kann nur verwendet werden, wenn EF ihren internen Dienstanbieter aufbaut und verwaltet. Wenn der Dienstanbieter extern erstellt und an weitergegeben wird UseInternalServiceProvider(IServiceProvider) , sollten die Ersatz Dienste für diesen Dienstanbieter konfiguriert werden, bevor er an EF weitergeleitet wird.

Der Ersatzdienst erhält denselben Bereich wie der zu ersetzende EF-Dienst.

(Geerbt von DbContextOptionsBuilder)
UseApplicationServiceProvider(IServiceProvider)

Legt den fest IServiceProvider , von dem Anwendungsdienste abgerufen werden. Dies erfolgt automatisch, wenn "adddbcontext" verwendet wird. Daher ist es selten, dass diese Methode aufgerufen werden muss.

UseApplicationServiceProvider(IServiceProvider)

Legt den fest IServiceProvider , von dem Anwendungsdienste abgerufen werden. Dies erfolgt automatisch, wenn "adddbcontext" oder "adddbcontextpool" verwendet wird. Daher ist es selten, dass diese Methode aufgerufen werden muss.

(Geerbt von DbContextOptionsBuilder)
UseInternalServiceProvider(IServiceProvider)

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

Der Dienstanbieter muss alle Dienste enthalten, die von Entity Framework (und der verwendeten Datenbank) benötigt werden. Die Entity Framework Dienste können mit einer-Erweiterungsmethode in registriert werden IServiceCollection . Der Microsoft SQL Server-Anbieter enthält z. b. eine addentityframeworksqlserver ()-Methode, um die erforderlichen Dienste hinzuzufügen.

Wenn IServiceProvider ein oder ein DbContextOptions DbContextOptions<TContext> registriert ist, wird dieses als Optionen für diese Kontext Instanz verwendet.

UseLoggerFactory(ILoggerFactory)

Legt den fest ILoggerFactory , der zum Erstellen ILogger von-Instanzen für die Protokollierung in diesem Kontext verwendet wird.

Es ist nicht erforderlich, diese Methode aufzurufen, wenn eine der adddbcontext-Methoden verwendet wird. "Adddbcontext" stellt sicher, dass der ILoggerFactory von EF verwendete vom Anwendungs Dienstanbieter abgerufen wird.

Diese Methode kann nicht verwendet werden, wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) . In diesem Fall sollte der ILoggerFactory direkt in diesem Dienstanbieter konfiguriert werden.

UseMemoryCache(IMemoryCache)

Legt den fest IMemoryCache , der für das Zwischenspeichern von Abfragen in diesem Kontext verwendet werden soll.

Beachten Sie, dass das Ändern des Speicher Caches bewirken kann, dass EF einen neuen internen Dienstanbieter erstellt, was zu Leistungsproblemen führen kann. Im Allgemeinen wird erwartet, dass für eine bestimmte Anwendung höchstens eine oder zwei unterschiedliche Instanzen verwendet werden.

Diese Methode kann nicht verwendet werden, wenn die Anwendung den internen Dienstanbieter durch einen-Rückruf festlegt UseInternalServiceProvider(IServiceProvider) . In diesem Fall sollte der IMemoryCache direkt in diesem Dienstanbieter konfiguriert werden.

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 Überwachungs Verhalten für LINQ-Abfragen fest, die für den Kontext ausgeführt werden. Die Deaktivierung der Änderungs Nachverfolgung ist für schreibgeschützte Szenarien nützlich, da dadurch der Aufwand für das Einrichten der Änderungs Nachverfolgung für jede Entitäts Instanz vermieden wird. Sie sollten die Änderungs Nachverfolgung nicht deaktivieren, wenn Sie Entitäts Instanzen bearbeiten und diese Änderungen in der Datenbank mithilfe von beibehalten möchten SaveChanges() .

Diese Methode legt das Standardverhalten für alle mit diesen Optionen erstellten Kontexte fest, Sie können dieses Verhalten jedoch für eine Kontext Instanz mithilfe QueryTrackingBehavior von oder überschreiben, indem Sie die-Methode und die-Methode verwenden AsNoTracking<TEntity>(IQueryable<TEntity>) AsTracking<TEntity>(IQueryable<TEntity>) .

Der Standardwert ist TrackAll. Dies bedeutet, dass der Change Tracker Änderungen für alle Entitäten nachverfolgt, die von einer LINQ-Abfrage zurückgegeben werden.

UseQueryTrackingBehavior(QueryTrackingBehavior)

Legt das Überwachungs Verhalten für LINQ-Abfragen fest, die für den Kontext ausgeführt werden. Die Deaktivierung der Änderungs Nachverfolgung ist für schreibgeschützte Szenarien nützlich, da dadurch der Aufwand für das Einrichten der Änderungs Nachverfolgung für jede Entitäts Instanz vermieden wird. Sie sollten die Änderungs Nachverfolgung nicht deaktivieren, wenn Sie Entitäts Instanzen bearbeiten und diese Änderungen in der Datenbank mithilfe von beibehalten möchten SaveChanges() .

Diese Methode legt das Standardverhalten für alle mit diesen Optionen erstellten Kontexte fest, Sie können dieses Verhalten jedoch für eine Kontext Instanz mithilfe QueryTrackingBehavior von oder überschreiben, indem Sie die-Methode und die-Methode verwenden AsNoTracking<TEntity>(IQueryable<TEntity>) AsTracking<TEntity>(IQueryable<TEntity>) .

Der Standardwert ist TrackAll. Dies bedeutet, dass der Change Tracker Änderungen für alle Entitäten nachverfolgt, die von einer LINQ-Abfrage zurückgegeben werden.

(Geerbt von DbContextOptionsBuilder)

Explizite Schnittstellenimplementierungen

IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

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

Diese Methode ist für die Verwendung durch Erweiterungs Methoden zum Konfigurieren des Kontexts vorgesehen. Sie ist nicht für die Verwendung im Anwendungscode vorgesehen.

(Geerbt von DbContextOptionsBuilder)

Erweiterungsmethoden

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.

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

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

UseCosmos<TContext>(DbContextOptionsBuilder<TContext>, 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, um eine Verbindung mit dem freigegebenen Legacy-in-Memory Database herzustellen. 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 einem benannten in-Memory Database herzustellen. Der in-Memory Database wird immer dann freigegeben, wenn derselbe Name verwendet wird, jedoch nur für einen bestimmten Dienstanbieter.

UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>)

Konfiguriert den Kontext, um eine Verbindung mit einem benannten in-Memory Database herzustellen. Der in-Memory Database wird immer dann freigegeben, wenn derselbe Name verwendet wird, jedoch nur für einen bestimmten Dienstanbieter. Wenn Sie dieselbe in-Memory Database für Dienstanbieter verwenden möchten, wenden Sie UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>) Übergeben eines freigegebenen InMemoryDatabaseRoot , auf dem die Datenbank gespeichert werden soll.

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

Konfiguriert den Kontext, um eine Verbindung mit dem freigegebenen Legacy-in-Memory Database herzustellen. Diese Methode ist veraltet. Verwenden Sie stattdessen UseInMemoryDatabase<TContext>(DbContextOptionsBuilder<TContext>, String, Action<InMemoryDbContextOptionsBuilder>).

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

Konfiguriert den Kontext, um eine Verbindung mit einem in-Memory Database herzustellen. Der in-Memory Database wird immer dann freigegeben, wenn derselbe Name verwendet wird, jedoch nur für einen bestimmten Dienstanbieter.

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

Konfiguriert den Kontext, um eine Verbindung mit einem in-Memory Database herzustellen. Der in-Memory Database wird immer dann freigegeben, wenn derselbe Name verwendet wird, jedoch nur für einen bestimmten Dienstanbieter. Wenn Sie dieselbe in-Memory Database für Dienstanbieter verwenden möchten, wenden Sie UseInMemoryDatabase<TContext>(DbContextOptionsBuilder<TContext>, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>) Übergeben eines freigegebenen InMemoryDatabaseRoot , auf dem die Datenbank gespeichert werden soll.

UseChangeTrackingProxies(DbContextOptionsBuilder, Boolean, Boolean)

Schaltet die Erstellung von Proxys für die Änderungs Nachverfolgung ein.

Beachten Sie, dass dafür geeignete Dienste im internen EF-Dienstanbieter verfügbar sein müssen. Normalerweise erfolgt dies automatisch, aber wenn die Anwendung den Dienstanbieter steuert, ist möglicherweise ein-Vorgang AddEntityFrameworkProxies(IServiceCollection) erforderlich.

UseChangeTrackingProxies<TContext>(DbContextOptionsBuilder<TContext>, Boolean, Boolean)

Schaltet die Erstellung von Proxys für die Änderungs Nachverfolgung ein.

Beachten Sie, dass dafür geeignete Dienste im internen EF-Dienstanbieter verfügbar sein müssen. Normalerweise erfolgt dies automatisch, aber wenn die Anwendung den Dienstanbieter steuert, ist möglicherweise ein-Vorgang AddEntityFrameworkProxies(IServiceCollection) erforderlich.

UseLazyLoadingProxies(DbContextOptionsBuilder, Boolean)

Schaltet die Erstellung von Proxys mit Lazy Load ein.

Beachten Sie, dass dafür geeignete Dienste im internen EF-Dienstanbieter verfügbar sein müssen. Normalerweise erfolgt dies automatisch, aber wenn die Anwendung den Dienstanbieter steuert, ist möglicherweise ein-Vorgang AddEntityFrameworkProxies(IServiceCollection) erforderlich.

UseLazyLoadingProxies<TContext>(DbContextOptionsBuilder<TContext>, Boolean)

Schaltet die Erstellung von Proxys mit Lazy Load ein.

Beachten Sie, dass dafür geeignete Dienste im internen EF-Dienstanbieter verfügbar sein müssen. Normalerweise erfolgt dies automatisch, aber wenn die Anwendung den Dienstanbieter steuert, ist möglicherweise ein-Vorgang AddEntityFrameworkProxies(IServiceCollection) erforderlich.

UseSqlite(DbContextOptionsBuilder, Action<SqliteDbContextOptionsBuilder>)

Konfiguriert den Kontext so, dass eine Verbindung mit einer SQLite-Datenbank hergestellt wird, ohne anfangs eine DbConnection oder eine Verbindungs Zeichenfolge festzulegen.

Die Verbindungs-oder Verbindungs Zeichenfolge muss festgelegt werden, bevor der zum DbContext Herstellen einer Verbindung mit einer Datenbank verwendet wird. Legen Sie eine Verbindung mit fest SetDbConnection(DatabaseFacade, DbConnection) . Legen Sie eine Verbindungs Zeichenfolge mit fest SetConnectionString(DatabaseFacade, String) .

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.

UseSqlite<TContext>(DbContextOptionsBuilder<TContext>, Action<SqliteDbContextOptionsBuilder>)

Konfiguriert den Kontext so, dass eine Verbindung mit einer SQLite-Datenbank hergestellt wird, ohne anfangs eine DbConnection oder eine Verbindungs Zeichenfolge festzulegen.

Die Verbindungs-oder Verbindungs Zeichenfolge muss festgelegt werden, bevor der zum DbContext Herstellen einer Verbindung mit einer Datenbank verwendet wird. Legen Sie eine Verbindung mit fest SetDbConnection(DatabaseFacade, DbConnection) . Legen Sie eine Verbindungs Zeichenfolge mit fest SetConnectionString(DatabaseFacade, String) .

UseSqlite<TContext>(DbContextOptionsBuilder<TContext>, DbConnection, Action<SqliteDbContextOptionsBuilder>)

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

UseSqlite<TContext>(DbContextOptionsBuilder<TContext>, 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 dass anfangs eine DbConnection oder eine Verbindungs Zeichenfolge festgelegt wird

Die Verbindungs-oder Verbindungs Zeichenfolge muss festgelegt werden, bevor der zum DbContext Herstellen einer Verbindung mit einer Datenbank verwendet wird. Legen Sie eine Verbindung mit fest SetDbConnection(DatabaseFacade, DbConnection) . Legen Sie eine Verbindungs Zeichenfolge mit fest SetConnectionString(DatabaseFacade, String) .

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.

UseSqlServer<TContext>(DbContextOptionsBuilder<TContext>, Action<SqlServerDbContextOptionsBuilder>)

Konfiguriert den Kontext so, dass eine Verbindung mit einer Microsoft SQL Server Datenbank hergestellt wird, ohne dass anfangs eine DbConnection oder eine Verbindungs Zeichenfolge festgelegt wird

Die Verbindungs-oder Verbindungs Zeichenfolge muss festgelegt werden, bevor der zum DbContext Herstellen einer Verbindung mit einer Datenbank verwendet wird. Legen Sie eine Verbindung mit fest SetDbConnection(DatabaseFacade, DbConnection) . Legen Sie eine Verbindungs Zeichenfolge mit fest SetConnectionString(DatabaseFacade, String) .

UseSqlServer<TContext>(DbContextOptionsBuilder<TContext>, DbConnection, Action<SqlServerDbContextOptionsBuilder>)

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

UseSqlServer<TContext>(DbContextOptionsBuilder<TContext>, String, Action<SqlServerDbContextOptionsBuilder>)

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

Gilt für: