EntityFrameworkServiceCollectionExtensions.AddDbContextFactory Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)
Registriert ein IDbContextFactory<TContext> Objekt in der IServiceCollection Zum Erstellen von Instanzen des angegebenen DbContext Typs.
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, der DbContext von der Factory erstellt werden soll.
- TFactory
Der Typ der IDbContextFactory<TContext> Registrierung.
Parameter
- serviceCollection
- IServiceCollection
Der IServiceCollection , dem Dienste hinzugefügt werden sollen.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Eine optionale Aktion zum Konfigurieren des DbContextOptions Kontexts. 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) Zusätzlich zur hier ausgeführten Konfiguration wird die Konfiguration angewendet.
Damit die Optionen in Ihren Kontext übergeben werden können, müssen Sie einen Konstruktor in Ihrem Kontext verfügbar machen, der ihn an DbContextOptions<TContext> den Basiskonstruktor DbContextvon .
- lifetime
- ServiceLifetime
Die Lebensdauer, mit der die Werkseinstellungen und Optionen registriert werden sollen. Der Standardwert ist Singleton.
Gibt zurück
Dieselbe Dienstauflistung, 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. Das Registrieren einer Factory wird für Blazor-Anwendungen und andere Situationen empfohlen, in denen der Bereich zum Einfügen von Abhängigkeiten nicht mit der Kontextlebensdauer übereinstimmt.
Verwenden Sie diese Methode bei Verwendung der Abhängigkeitsinjektion in Ihrer Anwendung, 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.
Aus Gründen der Einfachheit registriert diese Methode auch den Kontexttyp selbst als bereichsbezogenen Dienst. Auf diese Weise kann eine Kontextinstanz aus einem Abhängigkeitseinfügungsbereich direkt aufgelöst oder nach Bedarf von der Factory erstellt werden.
Diese Überladung ermöglicht es, eine bestimmte Implementierung zu IDbContextFactory<TContext> registrieren, anstatt die Standardfabrik zu verwenden, die mit EF Core ausgeliefert wird.
Diese Überladung weist eine optionsAction Überladung auf, die die Anwendung IServiceProviderbereitstellt. Dies ist nützlich, wenn Sie Entity Framework Core einrichten möchten, um die internen Dienste vom primären Anwendungsdienstanbieter aufzulösen. Standardmäßig empfehlen wir die Verwendung AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) , mit der Entity Framework eigene IServiceProvider Entitätsframework-Dienste 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 Vorgänge, die parallel ausgeführt werden. Weitere Informationen und Beispiele finden Sie unter Vermeiden von DbContext-Threadingproblemen .
Weitere Informationen und Beispiele finden Sie unter Verwenden von DbContext mit Abhängigkeitseinfügung und Verwendung von DbContext-Fabriken .
Gilt für:
AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)
Registriert ein IDbContextFactory<TContext> Objekt in der IServiceCollection Zum Erstellen von Instanzen des angegebenen DbContext Typs.
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, der DbContext von der Factory erstellt werden soll.
- TFactory
Der Typ der IDbContextFactory<TContext> Registrierung.
Parameter
- serviceCollection
- IServiceCollection
Der IServiceCollection , dem Dienste hinzugefügt werden sollen.
- optionsAction
- Action<DbContextOptionsBuilder>
Eine optionale Aktion zum Konfigurieren des DbContextOptions Kontexts. 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) Zusätzlich zur hier ausgeführten Konfiguration wird die Konfiguration angewendet.
Damit die Optionen in Ihren Kontext übergeben werden können, müssen Sie einen Konstruktor in Ihrem Kontext verfügbar machen, der ihn an DbContextOptions<TContext> den Basiskonstruktor DbContextvon .
- lifetime
- ServiceLifetime
Die Lebensdauer, mit der die Werkseinstellungen und Optionen registriert werden sollen. Der Standardwert ist Singleton.
Gibt zurück
Dieselbe Dienstauflistung, 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. Das Registrieren einer Factory wird für Blazor-Anwendungen und andere Situationen empfohlen, in denen der Bereich zum Einfügen von Abhängigkeiten nicht mit der Kontextlebensdauer übereinstimmt.
Verwenden Sie diese Methode bei Verwendung der Abhängigkeitsinjektion in Ihrer Anwendung, 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.
Aus Gründen der Einfachheit registriert diese Methode auch den Kontexttyp selbst als bereichsbezogenen Dienst. Auf diese Weise kann eine Kontextinstanz aus einem Abhängigkeitseinfügungsbereich direkt aufgelöst oder nach Bedarf von der Factory erstellt werden.
Diese Überladung ermöglicht es, eine bestimmte Implementierung zu IDbContextFactory<TContext> registrieren, anstatt die Standardfabrik zu verwenden, die mit EF Core ausgeliefert wird.
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 Vorgänge, die parallel ausgeführt werden. Weitere Informationen und Beispiele finden Sie unter Vermeiden von DbContext-Threadingproblemen .
Weitere Informationen und Beispiele finden Sie unter Verwenden von DbContext mit Abhängigkeitseinfügung und Verwendung von DbContext-Fabriken .
Gilt für:
AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)
Registriert ein IDbContextFactory<TContext> Objekt in der IServiceCollection Zum Erstellen von Instanzen des angegebenen DbContext Typs.
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, der DbContext von der Factory erstellt werden soll.
Parameter
- serviceCollection
- IServiceCollection
Der IServiceCollection , dem Dienste hinzugefügt werden sollen.
- optionsAction
- Action<DbContextOptionsBuilder>
Eine optionale Aktion zum Konfigurieren des DbContextOptions Kontexts. 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) Zusätzlich zur hier ausgeführten Konfiguration wird die Konfiguration angewendet.
Damit die Optionen in Ihren Kontext übergeben werden können, müssen Sie einen Konstruktor in Ihrem Kontext verfügbar machen, der ihn an DbContextOptions<TContext> den Basiskonstruktor DbContextvon .
- lifetime
- ServiceLifetime
Die Lebensdauer, mit der die Werkseinstellungen und Optionen registriert werden sollen. Der Standardwert ist Singleton.
Gibt zurück
Dieselbe Dienstauflistung, 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. Das Registrieren einer Factory wird für Blazor-Anwendungen und andere Situationen empfohlen, in denen der Bereich zum Einfügen von Abhängigkeiten nicht mit der Kontextlebensdauer übereinstimmt.
Verwenden Sie diese Methode bei Verwendung der Abhängigkeitsinjektion in Ihrer Anwendung, 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.
Aus Gründen der Einfachheit registriert diese Methode auch den Kontexttyp selbst als bereichsbezogenen Dienst. Auf diese Weise kann eine Kontextinstanz aus einem Abhängigkeitseinfügungsbereich direkt aufgelöst oder nach Bedarf 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 Vorgänge, die parallel ausgeführt werden. Weitere Informationen und Beispiele finden Sie unter Vermeiden von DbContext-Threadingproblemen .
Weitere Informationen und Beispiele finden Sie unter Verwenden von DbContext mit Abhängigkeitseinfügung und Verwendung von DbContext-Fabriken .
Gilt für:
AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)
Registriert ein IDbContextFactory<TContext> Objekt in der IServiceCollection Zum Erstellen von Instanzen des angegebenen DbContext Typs.
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, der DbContext von der Factory erstellt werden soll.
Parameter
- serviceCollection
- IServiceCollection
Der IServiceCollection , dem Dienste hinzugefügt werden sollen.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Eine optionale Aktion zum Konfigurieren des DbContextOptions Kontexts. 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) Zusätzlich zur hier ausgeführten Konfiguration wird die Konfiguration angewendet.
Damit die Optionen in Ihren Kontext übergeben werden können, müssen Sie einen Konstruktor in Ihrem Kontext verfügbar machen, der ihn an DbContextOptions<TContext> den Basiskonstruktor DbContextvon .
- lifetime
- ServiceLifetime
Die Lebensdauer, mit der die Werkseinstellungen und Optionen registriert werden sollen. Der Standardwert ist Singleton.
Gibt zurück
Dieselbe Dienstauflistung, 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. Das Registrieren einer Factory wird für Blazor-Anwendungen und andere Situationen empfohlen, in denen der Bereich zum Einfügen von Abhängigkeiten nicht mit der Kontextlebensdauer übereinstimmt.
Verwenden Sie diese Methode bei Verwendung der Abhängigkeitsinjektion in Ihrer Anwendung, 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.
Aus Gründen der Einfachheit registriert diese Methode auch den Kontexttyp selbst als bereichsbezogenen Dienst. Auf diese Weise kann eine Kontextinstanz aus einem Abhängigkeitseinfügungsbereich direkt aufgelöst oder nach Bedarf von der Factory erstellt werden.
Diese Überladung weist eine optionsAction Überladung auf, die die Anwendung IServiceProviderbereitstellt. Dies ist nützlich, wenn Sie Entity Framework Core einrichten möchten, um die internen Dienste vom primären Anwendungsdienstanbieter aufzulösen. Standardmäßig empfehlen wir die Verwendung AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) , mit der Entity Framework eigene IServiceProvider Entitätsframework-Dienste 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 Vorgänge, die parallel ausgeführt werden. Weitere Informationen und Beispiele finden Sie unter Vermeiden von DbContext-Threadingproblemen .
Weitere Informationen und Beispiele finden Sie unter Verwenden von DbContext mit Abhängigkeitseinfügung und Verwendung von DbContext-Fabriken .