EntityFrameworkServiceCollectionExtensions.AddDbContextFactory Methode

Definition

Überlädt

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Registriert eine IDbContextFactory<TContext> in, IServiceCollection um Instanzen des angegebenen DbContext Typs zu erstellen.

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Registriert eine IDbContextFactory<TContext> in, IServiceCollection um Instanzen des angegebenen DbContext Typs zu erstellen.

AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Registriert eine IDbContextFactory<TContext> in, IServiceCollection um Instanzen des angegebenen DbContext Typs zu erstellen.

AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Registriert eine IDbContextFactory<TContext> in, IServiceCollection um Instanzen des angegebenen DbContext Typs zu erstellen.

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Registriert eine IDbContextFactory<TContext> in, IServiceCollection um Instanzen des angegebenen DbContext Typs zu erstellen.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext and 'Factory :> Microsoft.EntityFrameworkCore.IDbContextFactory<'Context>)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext, TFactory As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection

Typparameter

TContext

Der Typ von, der DbContext von der Factory erstellt werden soll.

TFactory

Der Typ von, der IDbContextFactory<TContext> registriert werden soll.

Parameter

serviceCollection
IServiceCollection

Die IServiceCollection, der Dienste hinzugefügt werden sollen.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Eine optionale Aktion zum Konfigurieren von DbContextOptions für den Kontext. Dies bietet eine Alternative zur Konfiguration des Kontexts, indem die OnConfiguring(DbContextOptionsBuilder) -Methode im abgeleiteten Kontext überschrieben wird.

Wenn hier eine Aktion angegeben wird, wird die OnConfiguring(DbContextOptionsBuilder) Methode weiterhin ausgeführt, wenn sie im abgeleiteten Kontext überschrieben wurde. OnConfiguring(DbContextOptionsBuilder) Die Konfiguration wird zusätzlich zur hier ausgeführten Konfiguration angewendet.

Damit die Optionen in Ihren Kontext übergeben werden können, müssen Sie einen Konstruktor für Ihren Kontext verfügbar machen, der ihn übernimmt DbContextOptions<TContext> und an den Basiskonstruktor von DbContextübergibt.

lifetime
ServiceLifetime

Die Lebensdauer, mit der die Factory und die Optionen registriert werden sollen. Der Standardwert ist Singleton.

Gibt zurück

Dieselbe Dienstsammlung, sodass mehrere Aufrufe verkettet werden können.

Hinweise

Das Registrieren einer Factory anstelle der direkten Registrierung des Kontexttyps ermöglicht die einfache Erstellung neuer DbContext Instanzen. Die Registrierung einer Factory wird für Blazor-Anwendungen und andere Situationen empfohlen, in denen der Abhängigkeitseinschleusungsbereich nicht an der Kontextlebensdauer ausgerichtet ist.

Verwenden Sie diese Methode, wenn Sie abhängigkeitsinjektion in Ihrer Anwendung verwenden, z. B. mit Blazor. Für Anwendungen, die keine Abhängigkeitsinjektion verwenden, sollten Sie Instanzen direkt mit dem Konstruktor erstellen DbContext . Die OnConfiguring(DbContextOptionsBuilder) -Methode kann dann überschrieben werden, um eine Verbindungszeichenfolge und andere Optionen zu konfigurieren.

Zur Vereinfachung registriert diese Methode auch den Kontexttyp selbst als bereichsbezogenen Dienst. Dadurch kann ein Kontext instance nach Bedarf direkt aus einem Abhängigkeitsinjektionsbereich aufgelöst oder von der Factory erstellt werden.

Diese Überladung ermöglicht es, eine bestimmte Implementierung von IDbContextFactory<TContext> zu registrieren, anstatt die mit EF Core gelieferte Standardfactory zu verwenden.

Diese Überladung verfügt über eine optionsAction , die die -Anwendung IServiceProviderbereitstellt. Dies ist nützlich, wenn Sie Entity Framework Core einrichten möchten, um seine internen Dienste vom primären Anwendungsdienstanbieter aufzulösen. Standardmäßig wird empfohlen, zu verwenden AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) , mit dem Entity Framework eigene IServiceProvider für interne Entity Framework-Dienste erstellen und verwalten kann.

Entity Framework Core unterstützt nicht die Ausführung mehrerer paralleler Vorgänge, die für dieselbe DbContext-Instanz ausgeführt werden. Dies schließt die parallele Ausführung von asynchronen Abfragen und jede explizite gleichzeitige Verwendung aus mehreren Threads ein. Warten Sie daher immer sofort auf asynchrone Aufrufe, oder verwenden Sie separate DbContext-Instanzen für parallel ausgeführte Vorgänge. Weitere Informationen und Beispiele finden Sie unter Vermeiden von Problemen beim DbContext-Threading .

Weitere Informationen und Beispiele finden Sie unter Verwenden von DbContext mit Abhängigkeitsinjektion und Verwenden von DbContext-Fabriken .

Gilt für:

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Registriert eine IDbContextFactory<TContext> in, IServiceCollection um Instanzen des angegebenen DbContext Typs zu erstellen.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext and 'Factory :> Microsoft.EntityFrameworkCore.IDbContextFactory<'Context>)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext, TFactory As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection

Typparameter

TContext

Der Typ von, der DbContext von der Factory erstellt werden soll.

TFactory

Der Typ von, der IDbContextFactory<TContext> registriert werden soll.

Parameter

serviceCollection
IServiceCollection

Die IServiceCollection, der Dienste hinzugefügt werden sollen.

optionsAction
Action<DbContextOptionsBuilder>

Eine optionale Aktion zum Konfigurieren von DbContextOptions für den Kontext. Dies bietet eine Alternative zur Konfiguration des Kontexts, indem die OnConfiguring(DbContextOptionsBuilder) -Methode im abgeleiteten Kontext überschrieben wird.

Wenn hier eine Aktion angegeben wird, wird die OnConfiguring(DbContextOptionsBuilder) Methode weiterhin ausgeführt, wenn sie im abgeleiteten Kontext überschrieben wurde. OnConfiguring(DbContextOptionsBuilder) Die Konfiguration wird zusätzlich zur hier ausgeführten Konfiguration angewendet.

Damit die Optionen in Ihren Kontext übergeben werden können, müssen Sie einen Konstruktor für Ihren Kontext verfügbar machen, der ihn übernimmt DbContextOptions<TContext> und an den Basiskonstruktor von DbContextübergibt.

lifetime
ServiceLifetime

Die Lebensdauer, mit der die Factory und die Optionen registriert werden sollen. Der Standardwert ist Singleton.

Gibt zurück

Dieselbe Dienstsammlung, sodass mehrere Aufrufe verkettet werden können.

Hinweise

Das Registrieren einer Factory anstelle der direkten Registrierung des Kontexttyps ermöglicht die einfache Erstellung neuer DbContext Instanzen. Die Registrierung einer Factory wird für Blazor-Anwendungen und andere Situationen empfohlen, in denen der Abhängigkeitseinschleusungsbereich nicht an der Kontextlebensdauer ausgerichtet ist.

Verwenden Sie diese Methode, wenn Sie abhängigkeitsinjektion in Ihrer Anwendung verwenden, z. B. mit Blazor. Für Anwendungen, die keine Abhängigkeitsinjektion verwenden, sollten Sie Instanzen direkt mit dem Konstruktor erstellen DbContext . Die OnConfiguring(DbContextOptionsBuilder) -Methode kann dann überschrieben werden, um eine Verbindungszeichenfolge und andere Optionen zu konfigurieren.

Zur Vereinfachung registriert diese Methode auch den Kontexttyp selbst als bereichsbezogenen Dienst. Dadurch kann ein Kontext instance nach Bedarf direkt aus einem Abhängigkeitsinjektionsbereich aufgelöst oder von der Factory erstellt werden.

Diese Überladung ermöglicht es, eine bestimmte Implementierung von IDbContextFactory<TContext> zu registrieren, anstatt die mit EF Core gelieferte Standardfactory zu verwenden.

Entity Framework Core unterstützt nicht die Ausführung mehrerer paralleler Vorgänge, die für dieselbe DbContext-Instanz ausgeführt werden. Dies schließt die parallele Ausführung von asynchronen Abfragen und jede explizite gleichzeitige Verwendung aus mehreren Threads ein. Warten Sie daher immer sofort auf asynchrone Aufrufe, oder verwenden Sie separate DbContext-Instanzen für parallel ausgeführte Vorgänge. Weitere Informationen und Beispiele finden Sie unter Vermeiden von Problemen beim DbContext-Threading .

Weitere Informationen und Beispiele finden Sie unter Verwenden von DbContext mit Abhängigkeitsinjektion und Verwenden von DbContext-Fabriken .

Gilt für:

AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Registriert eine IDbContextFactory<TContext> in, IServiceCollection um Instanzen des angegebenen DbContext Typs zu erstellen.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection

Typparameter

TContext

Der Typ von, der DbContext von der Factory erstellt werden soll.

Parameter

serviceCollection
IServiceCollection

Die IServiceCollection, der Dienste hinzugefügt werden sollen.

optionsAction
Action<DbContextOptionsBuilder>

Eine optionale Aktion zum Konfigurieren von DbContextOptions für den Kontext. Dies bietet eine Alternative zur Konfiguration des Kontexts, indem die OnConfiguring(DbContextOptionsBuilder) -Methode im abgeleiteten Kontext überschrieben wird.

Wenn hier eine Aktion angegeben wird, wird die OnConfiguring(DbContextOptionsBuilder) Methode weiterhin ausgeführt, wenn sie im abgeleiteten Kontext überschrieben wurde. OnConfiguring(DbContextOptionsBuilder) Die Konfiguration wird zusätzlich zur hier ausgeführten Konfiguration angewendet.

Damit die Optionen in Ihren Kontext übergeben werden können, müssen Sie einen Konstruktor für Ihren Kontext verfügbar machen, der ihn übernimmt DbContextOptions<TContext> und an den Basiskonstruktor von DbContextübergibt.

lifetime
ServiceLifetime

Die Lebensdauer, mit der die Factory und die Optionen registriert werden sollen. Der Standardwert ist Singleton.

Gibt zurück

Dieselbe Dienstsammlung, sodass mehrere Aufrufe verkettet werden können.

Hinweise

Das Registrieren einer Factory anstelle der direkten Registrierung des Kontexttyps ermöglicht die einfache Erstellung neuer DbContext Instanzen. Die Registrierung einer Factory wird für Blazor-Anwendungen und andere Situationen empfohlen, in denen der Abhängigkeitseinschleusungsbereich nicht an der Kontextlebensdauer ausgerichtet ist.

Verwenden Sie diese Methode, wenn Sie abhängigkeitsinjektion in Ihrer Anwendung verwenden, z. B. mit Blazor. Für Anwendungen, die keine Abhängigkeitsinjektion verwenden, sollten Sie Instanzen direkt mit dem Konstruktor erstellen DbContext . Die OnConfiguring(DbContextOptionsBuilder) -Methode kann dann überschrieben werden, um eine Verbindungszeichenfolge und andere Optionen zu konfigurieren.

Zur Vereinfachung registriert diese Methode auch den Kontexttyp selbst als bereichsbezogenen Dienst. Dadurch kann ein Kontext instance nach Bedarf direkt aus einem Abhängigkeitsinjektionsbereich aufgelöst oder von der Factory erstellt werden.

Entity Framework Core unterstützt nicht die Ausführung mehrerer paralleler Vorgänge, die für dieselbe DbContext-Instanz ausgeführt werden. Dies schließt die parallele Ausführung von asynchronen Abfragen und jede explizite gleichzeitige Verwendung aus mehreren Threads ein. Warten Sie daher immer sofort auf asynchrone Aufrufe, oder verwenden Sie separate DbContext-Instanzen für parallel ausgeführte Vorgänge. Weitere Informationen und Beispiele finden Sie unter Vermeiden von Problemen beim DbContext-Threading .

Weitere Informationen und Beispiele finden Sie unter Verwenden von DbContext mit Abhängigkeitsinjektion und Verwenden von DbContext-Fabriken .

Gilt für:

AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Registriert eine IDbContextFactory<TContext> in, IServiceCollection um Instanzen des angegebenen DbContext Typs zu erstellen.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection

Typparameter

TContext

Der Typ von, der DbContext von der Factory erstellt werden soll.

Parameter

serviceCollection
IServiceCollection

Die IServiceCollection, der Dienste hinzugefügt werden sollen.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Eine optionale Aktion zum Konfigurieren von DbContextOptions für den Kontext. Dies bietet eine Alternative zur Konfiguration des Kontexts, indem die OnConfiguring(DbContextOptionsBuilder) -Methode im abgeleiteten Kontext überschrieben wird.

Wenn hier eine Aktion angegeben wird, wird die OnConfiguring(DbContextOptionsBuilder) Methode weiterhin ausgeführt, wenn sie im abgeleiteten Kontext überschrieben wurde. OnConfiguring(DbContextOptionsBuilder) Die Konfiguration wird zusätzlich zur hier ausgeführten Konfiguration angewendet.

Damit die Optionen in Ihren Kontext übergeben werden können, müssen Sie einen Konstruktor für Ihren Kontext verfügbar machen, der ihn übernimmt DbContextOptions<TContext> und an den Basiskonstruktor von DbContextübergibt.

lifetime
ServiceLifetime

Die Lebensdauer, mit der die Factory und die Optionen registriert werden sollen. Der Standardwert ist Singleton.

Gibt zurück

Dieselbe Dienstsammlung, sodass mehrere Aufrufe verkettet werden können.

Hinweise

Das Registrieren einer Factory anstelle der direkten Registrierung des Kontexttyps ermöglicht die einfache Erstellung neuer DbContext Instanzen. Die Registrierung einer Factory wird für Blazor-Anwendungen und andere Situationen empfohlen, in denen der Abhängigkeitseinschleusungsbereich nicht an der Kontextlebensdauer ausgerichtet ist.

Verwenden Sie diese Methode, wenn Sie abhängigkeitsinjektion in Ihrer Anwendung verwenden, z. B. mit Blazor. Für Anwendungen, die keine Abhängigkeitsinjektion verwenden, sollten Sie Instanzen direkt mit dem Konstruktor erstellen DbContext . Die OnConfiguring(DbContextOptionsBuilder) -Methode kann dann überschrieben werden, um eine Verbindungszeichenfolge und andere Optionen zu konfigurieren.

Zur Vereinfachung registriert diese Methode auch den Kontexttyp selbst als bereichsbezogenen Dienst. Dadurch kann ein Kontext instance nach Bedarf direkt aus einem Abhängigkeitsinjektionsbereich aufgelöst oder von der Factory erstellt werden.

Diese Überladung verfügt über eine optionsAction , die die -Anwendung IServiceProviderbereitstellt. Dies ist nützlich, wenn Sie Entity Framework Core einrichten möchten, um seine internen Dienste vom primären Anwendungsdienstanbieter aufzulösen. Standardmäßig wird empfohlen, zu verwenden AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) , mit dem Entity Framework eigene IServiceProvider für interne Entity Framework-Dienste erstellen und verwalten kann.

Entity Framework Core unterstützt nicht die Ausführung mehrerer paralleler Vorgänge, die für dieselbe DbContext-Instanz ausgeführt werden. Dies schließt die parallele Ausführung von asynchronen Abfragen und jede explizite gleichzeitige Verwendung aus mehreren Threads ein. Warten Sie daher immer sofort auf asynchrone Aufrufe, oder verwenden Sie separate DbContext-Instanzen für parallel ausgeführte Vorgänge. Weitere Informationen und Beispiele finden Sie unter Vermeiden von Problemen beim DbContext-Threading .

Weitere Informationen und Beispiele finden Sie unter Verwenden von DbContext mit Abhängigkeitsinjektion und Verwenden von DbContext-Fabriken .

Gilt für: