EntityFrameworkServiceCollectionExtensions.AddDbContextPool 方法

定義

多載

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

在 中 IServiceCollection 將指定的 DbContext 註冊為服務,並啟用此註冊的 DbCoNtext 共用。

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

在 中 IServiceCollection 將指定的 DbContext 註冊為服務,並啟用此註冊的 DbCoNtext 共用。

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

在 中 IServiceCollection 將指定的 DbContext 註冊為服務,並啟用此註冊的 DbCoNtext 共用。

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

在 中 IServiceCollection 將指定的 DbContext 註冊為服務,並啟用此註冊的 DbCoNtext 共用。

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

在 中 IServiceCollection 將指定的 DbContext 註冊為服務,並啟用此註冊的 DbCoNtext 共用。

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

類型參數

TContext

要註冊的內容類型。

參數

serviceCollection
IServiceCollection

要新增服務的 IServiceCollection

optionsAction
Action<DbContextOptionsBuilder>

設定 DbContextOptions 內容的必要動作。 使用內容共用時,必須在外部執行選項群組態; OnConfiguring(DbContextOptionsBuilder) 不會呼叫 。

poolSize
Int32

設定集區保留的實例數目上限。 預設值為 1024。

傳回

相同的服務集合,以便鏈結多個呼叫。

備註

DbCoNtext 共用可藉由重複使用內容實例,在高輸送量案例中提升效能。 不過,對於大部分的應用程式而言,此效能提升非常小。 請注意,使用共用時,內容組態無法在使用之間變更,而插入內容的範圍服務只會從初始範圍解析一次。 只有在效能測試指出它提供真正的提升時,才考慮使用 DbCoNtext 共用。

在應用程式中使用相依性插入時,請使用此方法,例如搭配 ASP.NET Core。 對於不使用相依性插入的應用程式,請考慮直接使用其建構函式建立 DbContext 實例。 OnConfiguring(DbContextOptionsBuilder)接著可以覆寫 方法,以設定連接字串和其他選項。

Entity Framework Core 不支援在同一 DbContext 執行個體上執行多個平行作業。 這包括平行執行非同步查詢,以及明確同時使用多個執行緒。 因此,請一律立即等候非同步呼叫,或針對平行執行的作業使用個別的 DbCoNtext 實例。 如需詳細資訊和範例 ,請參閱避免 DbCoNtext 執行緒問題

如需詳細資訊和範例,請參閱搭配相依性插入使用 DbCoNtext 和使用 DbCoNtext 共用

適用於

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

在 中 IServiceCollection 將指定的 DbContext 註冊為服務,並啟用此註冊的 DbCoNtext 共用。

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

類型參數

TContext

要註冊的內容類型。

參數

serviceCollection
IServiceCollection

要新增服務的 IServiceCollection

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

設定 DbContextOptions 內容的必要動作。 使用內容共用時,必須在外部執行選項群組態; OnConfiguring(DbContextOptionsBuilder) 不會呼叫 。

poolSize
Int32

設定集區保留的實例數目上限。 預設值為 1024。

傳回

相同的服務集合,以便鏈結多個呼叫。

備註

DbCoNtext 共用可藉由重複使用內容實例,在高輸送量案例中提升效能。 不過,對於大部分的應用程式而言,此效能提升非常小。 請注意,使用共用時,內容組態無法在使用之間變更,而插入內容的範圍服務只會從初始範圍解析一次。 只有在效能測試指出它提供真正的提升時,才考慮使用 DbCoNtext 共用。

在應用程式中使用相依性插入時,請使用此方法,例如搭配 ASP.NET Core。 對於不使用相依性插入的應用程式,請考慮直接使用其建構函式建立 DbContext 實例。 OnConfiguring(DbContextOptionsBuilder)接著可以覆寫 方法,以設定連接字串和其他選項。

Entity Framework Core 不支援在同一 DbContext 執行個體上執行多個平行作業。 這包括平行執行非同步查詢,以及明確同時使用多個執行緒。 因此,請一律立即等候非同步呼叫,或針對平行執行的作業使用個別的 DbCoNtext 實例。 如需詳細資訊和範例 ,請參閱避免 DbCoNtext 執行緒問題

如需詳細資訊和範例,請參閱搭配相依性插入使用 DbCoNtext 和使用 DbCoNtext 共用

此多載具有 , optionsAction 可提供應用程式的 IServiceProvider 。 如果您想要設定 Entity Framework Core,以從主要應用程式服務提供者解析其內部服務,這會很有用。 根據預設,我們建議使用 AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) ,讓 Entity Framework 針對內部 Entity Framework 服務建立和維護自己的 IServiceProvider 實體架構。

適用於

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

在 中 IServiceCollection 將指定的 DbContext 註冊為服務,並啟用此註冊的 DbCoNtext 共用。

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

類型參數

TContextService

將用來從容器解析內容的類別或介面。

TContextImplementation

要建立的具體實作類型。

參數

serviceCollection
IServiceCollection

要新增服務的 IServiceCollection

optionsAction
Action<DbContextOptionsBuilder>

設定 DbContextOptions 內容的必要動作。 使用內容共用時,必須在外部執行選項群組態; OnConfiguring(DbContextOptionsBuilder) 不會呼叫 。

poolSize
Int32

設定集區保留的實例數目上限。 預設值為 1024。

傳回

相同的服務集合,以便鏈結多個呼叫。

備註

DbCoNtext 共用可藉由重複使用內容實例,在高輸送量案例中提升效能。 不過,對於大部分的應用程式而言,此效能提升非常小。 請注意,使用共用時,內容組態無法在使用之間變更,而插入內容的範圍服務只會從初始範圍解析一次。 只有在效能測試指出它提供真正的提升時,才考慮使用 DbCoNtext 共用。

在應用程式中使用相依性插入時,請使用此方法,例如搭配 ASP.NET Core。 對於不使用相依性插入的應用程式,請考慮直接使用其建構函式建立 DbContext 實例。 OnConfiguring(DbContextOptionsBuilder)接著可以覆寫 方法,以設定連接字串和其他選項。

Entity Framework Core 不支援在同一 DbContext 執行個體上執行多個平行作業。 這包括平行執行非同步查詢,以及明確同時使用多個執行緒。 因此,請一律立即等候非同步呼叫,或針對平行執行的作業使用個別的 DbCoNtext 實例。 如需詳細資訊和範例 ,請參閱避免 DbCoNtext 執行緒問題

如需詳細資訊和範例,請參閱搭配相依性插入使用 DbCoNtext 和使用 DbCoNtext 共用

適用於

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

在 中 IServiceCollection 將指定的 DbContext 註冊為服務,並啟用此註冊的 DbCoNtext 共用。

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

類型參數

TContextService

將用來從容器解析內容的類別或介面。

TContextImplementation

要建立的具體實作類型。

參數

serviceCollection
IServiceCollection

要新增服務的 IServiceCollection

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

設定 DbContextOptions 內容的必要動作。 使用內容共用時,必須在外部執行選項群組態; OnConfiguring(DbContextOptionsBuilder) 不會呼叫 。

poolSize
Int32

設定集區保留的實例數目上限。 預設值為 1024。

傳回

相同的服務集合,以便鏈結多個呼叫。

備註

DbCoNtext 共用可藉由重複使用內容實例,在高輸送量案例中提升效能。 不過,對於大部分的應用程式而言,此效能提升非常小。 請注意,使用共用時,內容組態無法在使用之間變更,而插入內容的範圍服務只會從初始範圍解析一次。 只有在效能測試指出它提供真正的提升時,才考慮使用 DbCoNtext 共用。

在應用程式中使用相依性插入時,請使用此方法,例如搭配 ASP.NET Core。 對於不使用相依性插入的應用程式,請考慮直接使用其建構函式建立 DbContext 實例。 OnConfiguring(DbContextOptionsBuilder)接著可以覆寫 方法,以設定連接字串和其他選項。

Entity Framework Core 不支援在同一 DbContext 執行個體上執行多個平行作業。 這包括平行執行非同步查詢,以及明確同時使用多個執行緒。 因此,請一律立即等候非同步呼叫,或針對平行執行的作業使用個別的 DbCoNtext 實例。 如需詳細資訊和範例 ,請參閱避免 DbCoNtext 執行緒問題

如需詳細資訊和範例,請參閱搭配相依性插入使用 DbCoNtext 和使用 DbCoNtext 共用

此多載具有 , optionsAction 可提供應用程式的 IServiceProvider 。 如果您想要設定 Entity Framework Core,以從主要應用程式服務提供者解析其內部服務,這會很有用。 根據預設,我們建議使用 AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) ,讓 Entity Framework 針對內部 Entity Framework 服務建立和維護自己的 IServiceProvider 實體架構。

適用於