Aracılığıyla paylaş


EntityFrameworkServiceCollectionExtensions.AddDbContextPool Yöntem

Tanım

Aşırı Yüklemeler

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

Verilen DbContext öğesini içinde IServiceCollectionbir hizmet olarak kaydeder ve bu kayıt için DbContext havuzunu etkinleştirir.

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

Verilen DbContext öğesini içinde IServiceCollectionbir hizmet olarak kaydeder ve bu kayıt için DbContext havuzunu etkinleştirir.

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

Verilen DbContext öğesini içinde IServiceCollectionbir hizmet olarak kaydeder ve bu kayıt için DbContext havuzunu etkinleştirir.

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

Verilen DbContext öğesini içinde IServiceCollectionbir hizmet olarak kaydeder ve bu kayıt için DbContext havuzunu etkinleştirir.

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

Verilen DbContext öğesini içinde IServiceCollectionbir hizmet olarak kaydeder ve bu kayıt için DbContext havuzunu etkinleştirir.

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

Tür Parametreleri

TContext

Kaydedilecek bağlam türü.

Parametreler

serviceCollection
IServiceCollection

IServiceCollection hizmet eklemek için.

optionsAction
Action<DbContextOptionsBuilder>

Bağlam için öğesini yapılandırmak DbContextOptions için gerekli bir eylem. Bağlam havuzu kullanılırken, seçenekler yapılandırması dışarıdan gerçekleştirilmelidir; OnConfiguring(DbContextOptionsBuilder) çağrılmayacak.

poolSize
Int32

Havuz tarafından tutulan en fazla örnek sayısını ayarlar. Varsayılan değer 1024'tir.

Döndürülenler

Birden çok çağrının zincirlenebilmesi için aynı hizmet koleksiyonu.

Açıklamalar

DbContext havuzu, bağlam örneklerini yeniden kullanarak yüksek aktarım hızı senaryolarında performansı artırabilir. Ancak çoğu uygulama için bu performans artışı çok küçük olur. Havuz oluşturma kullanılırken bağlam yapılandırmasının kullanımlar arasında değişemeyeceğini ve bağlama eklenen kapsamlı hizmetlerin ilk kapsamdan yalnızca bir kez çözüleceğini unutmayın. Yalnızca performans testi gerçek bir artış sağladığını gösterdiğinde DbContext havuzu kullanmayı göz önünde bulundurun.

Uygulamanızda bağımlılık ekleme özelliğini kullanırken ASP.NET Core gibi bu yöntemi kullanın. Bağımlılık ekleme kullanmayan uygulamalar için doğrudan oluşturucuyla örnek oluşturmayı DbContext göz önünde bulundurun. Daha OnConfiguring(DbContextOptionsBuilder) sonra bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için yöntemi geçersiz kılınabilir.

Entity Framework Core, aynı DbContext örneğinde birden çok paralel işlemin çalıştırılmasını desteklemez. Buna hem zaman uyumsuz sorguların paralel yürütülmesi hem de birden çok iş parçacığından açık eş zamanlı kullanım dahildir. Bu nedenle, her zaman zaman uyumsuz çağrıları hemen bekleyin veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi ve örnek için bkz. DbContext iş parçacığı oluşturma sorunlarını önleme .

Daha fazla bilgi ve örnek için bkz. Bağımlılık ekleme ile DbContextkullanma ve DbContext havuzunu kullanma .

Şunlara uygulanır

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

Verilen DbContext öğesini içinde IServiceCollectionbir hizmet olarak kaydeder ve bu kayıt için DbContext havuzunu etkinleştirir.

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

Tür Parametreleri

TContext

Kaydedilecek bağlam türü.

Parametreler

serviceCollection
IServiceCollection

IServiceCollection hizmet eklemek için.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Bağlam için öğesini yapılandırmak DbContextOptions için gerekli bir eylem. Bağlam havuzu kullanılırken, seçenekler yapılandırması dışarıdan gerçekleştirilmelidir; OnConfiguring(DbContextOptionsBuilder) çağrılmayacak.

poolSize
Int32

Havuz tarafından tutulan en fazla örnek sayısını ayarlar. Varsayılan değer 1024'tir.

Döndürülenler

Birden çok çağrının zincirlenebilmesi için aynı hizmet koleksiyonu.

Açıklamalar

DbContext havuzu, bağlam örneklerini yeniden kullanarak yüksek aktarım hızı senaryolarında performansı artırabilir. Ancak çoğu uygulama için bu performans artışı çok küçük olur. Havuz oluşturma kullanılırken bağlam yapılandırmasının kullanımlar arasında değişemeyeceğini ve bağlama eklenen kapsamlı hizmetlerin ilk kapsamdan yalnızca bir kez çözüleceğini unutmayın. Yalnızca performans testi gerçek bir artış sağladığını gösterdiğinde DbContext havuzu kullanmayı göz önünde bulundurun.

Uygulamanızda bağımlılık ekleme özelliğini kullanırken ASP.NET Core gibi bu yöntemi kullanın. Bağımlılık ekleme kullanmayan uygulamalar için doğrudan oluşturucuyla örnek oluşturmayı DbContext göz önünde bulundurun. Daha OnConfiguring(DbContextOptionsBuilder) sonra bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için yöntemi geçersiz kılınabilir.

Entity Framework Core, aynı DbContext örneğinde birden çok paralel işlemin çalıştırılmasını desteklemez. Buna hem zaman uyumsuz sorguların paralel yürütülmesi hem de birden çok iş parçacığından açık eş zamanlı kullanım dahildir. Bu nedenle, her zaman zaman uyumsuz çağrıları hemen bekleyin veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi ve örnek için bkz. DbContext iş parçacığı oluşturma sorunlarını önleme .

Daha fazla bilgi ve örnek için bkz. Bağımlılık ekleme ile DbContextkullanma ve DbContext havuzunu kullanma .

Bu aşırı yükleme, uygulamanın IServiceProvideröğesini sağlayan bir optionsAction öğesine sahiptir. Birincil uygulama hizmeti sağlayıcısından gelen iç hizmetlerini çözümlemek için Entity Framework Core'u ayarlamak istiyorsanız bu yararlı olur. Varsayılan olarak, Entity Framework'ün iç Entity Framework hizmetleri için kendi IServiceProvider entity framework'ünü oluşturmasına ve sürdürmesine izin veren bir özellik kullanmanızı AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) öneririz.

Şunlara uygulanır

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

Verilen DbContext öğesini içinde IServiceCollectionbir hizmet olarak kaydeder ve bu kayıt için DbContext havuzunu etkinleştirir.

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

Tür Parametreleri

TContextService

Kapsayıcıdan bağlamı çözümlemek için kullanılacak sınıf veya arabirim.

TContextImplementation

Oluşturulacak somut uygulama türü.

Parametreler

serviceCollection
IServiceCollection

IServiceCollection hizmet eklemek için.

optionsAction
Action<DbContextOptionsBuilder>

Bağlam için öğesini yapılandırmak DbContextOptions için gerekli bir eylem. Bağlam havuzu kullanılırken, seçenekler yapılandırması dışarıdan gerçekleştirilmelidir; OnConfiguring(DbContextOptionsBuilder) çağrılmayacak.

poolSize
Int32

Havuz tarafından tutulan en fazla örnek sayısını ayarlar. Varsayılan değer 1024'tir.

Döndürülenler

Birden çok çağrının zincirlenebilmesi için aynı hizmet koleksiyonu.

Açıklamalar

DbContext havuzu, bağlam örneklerini yeniden kullanarak yüksek aktarım hızı senaryolarında performansı artırabilir. Ancak çoğu uygulama için bu performans artışı çok küçük olur. Havuz oluşturma kullanılırken bağlam yapılandırmasının kullanımlar arasında değişemeyeceğini ve bağlama eklenen kapsamlı hizmetlerin ilk kapsamdan yalnızca bir kez çözüleceğini unutmayın. Yalnızca performans testi gerçek bir artış sağladığını gösterdiğinde DbContext havuzu kullanmayı göz önünde bulundurun.

Uygulamanızda bağımlılık ekleme özelliğini kullanırken ASP.NET Core gibi bu yöntemi kullanın. Bağımlılık ekleme kullanmayan uygulamalar için doğrudan oluşturucuyla örnek oluşturmayı DbContext göz önünde bulundurun. Daha OnConfiguring(DbContextOptionsBuilder) sonra bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için yöntemi geçersiz kılınabilir.

Entity Framework Core, aynı DbContext örneğinde birden çok paralel işlemin çalıştırılmasını desteklemez. Buna hem zaman uyumsuz sorguların paralel yürütülmesi hem de birden çok iş parçacığından açık eş zamanlı kullanım dahildir. Bu nedenle, her zaman zaman uyumsuz çağrıları hemen bekleyin veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi ve örnek için bkz. DbContext iş parçacığı oluşturma sorunlarını önleme .

Daha fazla bilgi ve örnek için bkz. Bağımlılık ekleme ile DbContextkullanma ve DbContext havuzunu kullanma .

Şunlara uygulanır

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

Verilen DbContext öğesini içinde IServiceCollectionbir hizmet olarak kaydeder ve bu kayıt için DbContext havuzunu etkinleştirir.

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

Tür Parametreleri

TContextService

Kapsayıcıdan bağlamı çözümlemek için kullanılacak sınıf veya arabirim.

TContextImplementation

Oluşturulacak somut uygulama türü.

Parametreler

serviceCollection
IServiceCollection

IServiceCollection hizmet eklemek için.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Bağlam için öğesini yapılandırmak DbContextOptions için gerekli bir eylem. Bağlam havuzu kullanılırken, seçenekler yapılandırması dışarıdan gerçekleştirilmelidir; OnConfiguring(DbContextOptionsBuilder) çağrılmayacak.

poolSize
Int32

Havuz tarafından tutulan en fazla örnek sayısını ayarlar. Varsayılan değer 1024'tir.

Döndürülenler

Birden çok çağrının zincirlenebilmesi için aynı hizmet koleksiyonu.

Açıklamalar

DbContext havuzu, bağlam örneklerini yeniden kullanarak yüksek aktarım hızı senaryolarında performansı artırabilir. Ancak çoğu uygulama için bu performans artışı çok küçük olur. Havuz oluşturma kullanılırken bağlam yapılandırmasının kullanımlar arasında değişemeyeceğini ve bağlama eklenen kapsamlı hizmetlerin ilk kapsamdan yalnızca bir kez çözüleceğini unutmayın. Yalnızca performans testi gerçek bir artış sağladığını gösterdiğinde DbContext havuzu kullanmayı göz önünde bulundurun.

Uygulamanızda bağımlılık ekleme özelliğini kullanırken ASP.NET Core gibi bu yöntemi kullanın. Bağımlılık ekleme kullanmayan uygulamalar için doğrudan oluşturucuyla örnek oluşturmayı DbContext göz önünde bulundurun. Daha OnConfiguring(DbContextOptionsBuilder) sonra bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için yöntemi geçersiz kılınabilir.

Entity Framework Core, aynı DbContext örneğinde birden çok paralel işlemin çalıştırılmasını desteklemez. Buna hem zaman uyumsuz sorguların paralel yürütülmesi hem de birden çok iş parçacığından açık eş zamanlı kullanım dahildir. Bu nedenle, her zaman zaman uyumsuz çağrıları hemen bekleyin veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi ve örnek için bkz. DbContext iş parçacığı oluşturma sorunlarını önleme .

Daha fazla bilgi ve örnek için bkz. Bağımlılık ekleme ile DbContextkullanma ve DbContext havuzunu kullanma .

Bu aşırı yükleme, uygulamanın IServiceProvideröğesini sağlayan bir optionsAction öğesine sahiptir. Birincil uygulama hizmeti sağlayıcısından gelen iç hizmetlerini çözümlemek için Entity Framework Core'u ayarlamak istiyorsanız bu yararlı olur. Varsayılan olarak, Entity Framework'ün iç Entity Framework hizmetleri için kendi IServiceProvider entity framework'ünü oluşturmasına ve sürdürmesine izin veren bir özellik kullanmanızı AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) öneririz.

Şunlara uygulanır