EntityFrameworkServiceCollectionExtensions.AddDbContextPool Methode

Definition

Überlädt

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Registriert die angegebene DbContext als Dienst in und IServiceCollectionaktiviert dbContext-Pooling für diese Registrierung.

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Registriert die angegebene DbContext als Dienst in und IServiceCollectionaktiviert dbContext-Pooling für diese Registrierung.

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Registriert die angegebene DbContext als Dienst in und IServiceCollectionaktiviert dbContext-Pooling für diese Registrierung.

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Registriert die angegebene DbContext als Dienst in und IServiceCollectionaktiviert dbContext-Pooling für diese Registrierung.

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Registriert die angegebene DbContext als Dienst in und IServiceCollectionaktiviert dbContext-Pooling für diese Registrierung.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

Typparameter

TContext

Der Typ des zu registrierenden Kontexts.

Parameter

serviceCollection
IServiceCollection

Die IServiceCollection, der Dienste hinzugefügt werden sollen.

optionsAction
Action<DbContextOptionsBuilder>

Eine erforderliche Aktion zum Konfigurieren von DbContextOptions für den Kontext. Bei Verwendung von Kontextpooling muss die Optionenkonfiguration extern ausgeführt werden. OnConfiguring(DbContextOptionsBuilder) wird nicht aufgerufen.

poolSize
Int32

Legt die maximale Anzahl von Instanzen fest, die vom Pool beibehalten werden. Der Standardwert ist 1024.

Gibt zurück

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

Hinweise

DbContext-Pooling kann die Leistung in Szenarien mit hohem Durchsatz erhöhen, indem Kontextinstanzen erneut verwendet werden. Für die meisten Anwendungen ist dieser Leistungsgewinn jedoch sehr gering. Beachten Sie, dass bei Verwendung von Pooling die Kontextkonfiguration zwischen Verwendungen nicht geändert werden kann, und bereichsbezogene Dienste, die in den Kontext eingefügt werden, werden nur einmal aus dem ursprünglichen Bereich aufgelöst. Erwägen Sie die Verwendung von DbContext-Pooling nur, wenn Leistungstests darauf hindeuten, dass es einen echten Schub bietet.

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

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 DbContext-Threadingproblemen .

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

Gilt für:

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Registriert die angegebene DbContext als Dienst in und IServiceCollectionaktiviert dbContext-Pooling für diese Registrierung.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

Typparameter

TContext

Der Typ des zu registrierenden Kontexts.

Parameter

serviceCollection
IServiceCollection

Die IServiceCollection, der Dienste hinzugefügt werden sollen.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Eine erforderliche Aktion zum Konfigurieren von DbContextOptions für den Kontext. Bei Verwendung von Kontextpooling muss die Optionenkonfiguration extern ausgeführt werden. OnConfiguring(DbContextOptionsBuilder) wird nicht aufgerufen.

poolSize
Int32

Legt die maximale Anzahl von Instanzen fest, die vom Pool beibehalten werden. Der Standardwert ist 1024.

Gibt zurück

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

Hinweise

DbContext-Pooling kann die Leistung in Szenarien mit hohem Durchsatz erhöhen, indem Kontextinstanzen erneut verwendet werden. Für die meisten Anwendungen ist dieser Leistungsgewinn jedoch sehr gering. Beachten Sie, dass bei Verwendung von Pooling die Kontextkonfiguration zwischen Verwendungen nicht geändert werden kann, und bereichsbezogene Dienste, die in den Kontext eingefügt werden, werden nur einmal aus dem ursprünglichen Bereich aufgelöst. Erwägen Sie die Verwendung von DbContext-Pooling nur, wenn Leistungstests darauf hindeuten, dass es einen echten Schub bietet.

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

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 DbContext-Threadingproblemen .

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

Diese Überladung verfügt über eine optionsAction , die die -Instanz der 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 die Verwendung von AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) empfohlen, mit der Entity Framework eigene IServiceProvider Für interne Entity Framework-Dienste erstellen und verwalten kann.

Gilt für:

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Registriert die angegebene DbContext als Dienst in und IServiceCollectionaktiviert dbContext-Pooling für diese Registrierung.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

Typparameter

TContextService

Die Klasse oder Schnittstelle, die verwendet wird, um den Kontext aus dem Container aufzulösen.

TContextImplementation

Der zu erstellende konkrete Implementierungstyp.

Parameter

serviceCollection
IServiceCollection

Die IServiceCollection, der Dienste hinzugefügt werden sollen.

optionsAction
Action<DbContextOptionsBuilder>

Eine erforderliche Aktion zum Konfigurieren von DbContextOptions für den Kontext. Bei Verwendung von Kontextpooling muss die Optionenkonfiguration extern ausgeführt werden. OnConfiguring(DbContextOptionsBuilder) wird nicht aufgerufen.

poolSize
Int32

Legt die maximale Anzahl von Instanzen fest, die vom Pool beibehalten werden. Der Standardwert ist 1024.

Gibt zurück

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

Hinweise

DbContext-Pooling kann die Leistung in Szenarien mit hohem Durchsatz erhöhen, indem Kontextinstanzen erneut verwendet werden. Für die meisten Anwendungen ist dieser Leistungsgewinn jedoch sehr gering. Beachten Sie, dass bei Verwendung von Pooling die Kontextkonfiguration zwischen Verwendungen nicht geändert werden kann, und bereichsbezogene Dienste, die in den Kontext eingefügt werden, werden nur einmal aus dem ursprünglichen Bereich aufgelöst. Erwägen Sie die Verwendung von DbContext-Pooling nur, wenn Leistungstests darauf hindeuten, dass es einen echten Schub bietet.

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

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 DbContext-Threadingproblemen .

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

Gilt für:

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Registriert die angegebene DbContext als Dienst in und IServiceCollectionaktiviert dbContext-Pooling für diese Registrierung.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

Typparameter

TContextService

Die Klasse oder Schnittstelle, die verwendet wird, um den Kontext aus dem Container aufzulösen.

TContextImplementation

Der zu erstellende konkrete Implementierungstyp.

Parameter

serviceCollection
IServiceCollection

Die IServiceCollection, der Dienste hinzugefügt werden sollen.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Eine erforderliche Aktion zum Konfigurieren von DbContextOptions für den Kontext. Bei Verwendung von Kontextpooling muss die Optionenkonfiguration extern ausgeführt werden. OnConfiguring(DbContextOptionsBuilder) wird nicht aufgerufen.

poolSize
Int32

Legt die maximale Anzahl von Instanzen fest, die vom Pool beibehalten werden. Der Standardwert ist 1024.

Gibt zurück

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

Hinweise

DbContext-Pooling kann die Leistung in Szenarien mit hohem Durchsatz erhöhen, indem Kontextinstanzen erneut verwendet werden. Für die meisten Anwendungen ist dieser Leistungsgewinn jedoch sehr gering. Beachten Sie, dass bei Verwendung von Pooling die Kontextkonfiguration zwischen Verwendungen nicht geändert werden kann, und bereichsbezogene Dienste, die in den Kontext eingefügt werden, werden nur einmal aus dem ursprünglichen Bereich aufgelöst. Erwägen Sie die Verwendung von DbContext-Pooling nur, wenn Leistungstests darauf hindeuten, dass es einen echten Schub bietet.

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

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 DbContext-Threadingproblemen .

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

Diese Überladung verfügt über eine optionsAction , die die -Instanz der 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 die Verwendung von AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) empfohlen, mit der Entity Framework eigene IServiceProvider Für interne Entity Framework-Dienste erstellen und verwalten kann.

Gilt für: