Aracılığıyla paylaş


EntityFrameworkServiceCollectionExtensions.AddDbContextFactory Yöntem

Tanım

Aşırı Yüklemeler

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

Verilen DbContext türün IServiceCollection örneklerini oluşturmak için öğesine kaydederIDbContextFactory<TContext>.

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

Verilen DbContext türün IServiceCollection örneklerini oluşturmak için öğesine kaydederIDbContextFactory<TContext>.

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

Verilen DbContext türün IServiceCollection örneklerini oluşturmak için öğesine kaydederIDbContextFactory<TContext>.

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

Verilen DbContext türün IServiceCollection örneklerini oluşturmak için öğesine kaydederIDbContextFactory<TContext>.

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

Verilen DbContext türün IServiceCollection örneklerini oluşturmak için öğesine kaydederIDbContextFactory<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>;
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

Tür Parametreleri

TContext

Fabrika tarafından oluşturulacak türü DbContext .

TFactory

Kaydedilecek türü IDbContextFactory<TContext> .

Parametreler

serviceCollection
IServiceCollection

IServiceCollection hizmet eklenecek.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

bağlamını yapılandırmak DbContextOptions için isteğe bağlı bir eylem. Bu, türetilmiş bağlamınızdaki yöntemini geçersiz kılarak bağlam yapılandırmasını gerçekleştirmeye OnConfiguring(DbContextOptionsBuilder) bir alternatif sağlar.

Burada bir eylem sağlanırsa, OnConfiguring(DbContextOptionsBuilder) yöntem türetilmiş bağlamda geçersiz kılındıysa yine de çalıştırılır. OnConfiguring(DbContextOptionsBuilder) yapılandırma, burada gerçekleştirilen yapılandırmaya ek olarak uygulanır.

Seçeneklerin bağlamınıza geçirilebilmesi için bağlamınız üzerinde bunu alıp DbContextOptions<TContext> temel oluşturucusuna geçiren bir oluşturucuyu DbContextkullanıma sunmanız gerekir.

lifetime
ServiceLifetime

Fabrikanın ve seçeneklerin kaydedildiği yaşam süresi. Varsayılan değer: Singleton

Döndürülenler

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

Açıklamalar

Bağlam türünü doğrudan kaydetmek yerine fabrikanın kaydedilmesi, yeni DbContext örneklerin kolayca oluşturulmasını sağlar. Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrüyle uyumlu olmadığı diğer durumlar için fabrikanın kaydedilmesi önerilir.

Blazor gibi uygulamanızda bağımlılık eklemeyi kullanırken 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.

Kolaylık sağlamak için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak da kaydeder. Bu, bağlam örneğinin bağımlılık ekleme kapsamından doğrudan çözümlenmesine veya fabrika tarafından uygun şekilde oluşturulmasına olanak tanır.

Bu aşırı yükleme, EF Core ile birlikte gelen varsayılan fabrikayı kullanmak yerine belirli bir uygulamasının IDbContextFactory<TContext> kaydedilmesini sağlar.

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 öğesini oluşturmasına ve sürdürmesine izin veren öğesini kullanmanızı AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) öneririz.

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 fabrikalarını kullanma .

Şunlara uygulanır

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

Verilen DbContext türün IServiceCollection örneklerini oluşturmak için öğesine kaydederIDbContextFactory<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>;
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

Tür Parametreleri

TContext

Fabrika tarafından oluşturulacak türü DbContext .

TFactory

Kaydedilecek türü IDbContextFactory<TContext> .

Parametreler

serviceCollection
IServiceCollection

IServiceCollection hizmet eklenecek.

optionsAction
Action<DbContextOptionsBuilder>

bağlamını yapılandırmak DbContextOptions için isteğe bağlı bir eylem. Bu, türetilmiş bağlamınızdaki yöntemini geçersiz kılarak bağlam yapılandırmasını gerçekleştirmeye OnConfiguring(DbContextOptionsBuilder) bir alternatif sağlar.

Burada bir eylem sağlanırsa, OnConfiguring(DbContextOptionsBuilder) yöntem türetilmiş bağlamda geçersiz kılındıysa yine de çalıştırılır. OnConfiguring(DbContextOptionsBuilder) yapılandırma, burada gerçekleştirilen yapılandırmaya ek olarak uygulanır.

Seçeneklerin bağlamınıza geçirilebilmesi için bağlamınız üzerinde bunu alıp DbContextOptions<TContext> temel oluşturucusuna geçiren bir oluşturucuyu DbContextkullanıma sunmanız gerekir.

lifetime
ServiceLifetime

Fabrikanın ve seçeneklerin kaydedildiği yaşam süresi. Varsayılan değer: Singleton

Döndürülenler

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

Açıklamalar

Bağlam türünü doğrudan kaydetmek yerine fabrikanın kaydedilmesi, yeni DbContext örneklerin kolayca oluşturulmasını sağlar. Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrüyle uyumlu olmadığı diğer durumlar için fabrikanın kaydedilmesi önerilir.

Blazor gibi uygulamanızda bağımlılık eklemeyi kullanırken 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.

Kolaylık sağlamak için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak da kaydeder. Bu, bağlam örneğinin bağımlılık ekleme kapsamından doğrudan çözümlenmesine veya fabrika tarafından uygun şekilde oluşturulmasına olanak tanır.

Bu aşırı yükleme, EF Core ile birlikte gelen varsayılan fabrikayı kullanmak yerine belirli bir uygulamasının IDbContextFactory<TContext> kaydedilmesini sağlar.

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 fabrikalarını kullanma .

Şunlara uygulanır

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

Verilen DbContext türün IServiceCollection örneklerini oluşturmak için öğesine kaydederIDbContextFactory<TContext>.

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

Tür Parametreleri

TContext

Fabrika tarafından oluşturulacak türü DbContext .

Parametreler

serviceCollection
IServiceCollection

IServiceCollection hizmet eklenecek.

optionsAction
Action<DbContextOptionsBuilder>

bağlamını yapılandırmak DbContextOptions için isteğe bağlı bir eylem. Bu, türetilmiş bağlamınızdaki yöntemini geçersiz kılarak bağlam yapılandırmasını gerçekleştirmeye OnConfiguring(DbContextOptionsBuilder) bir alternatif sağlar.

Burada bir eylem sağlanırsa, OnConfiguring(DbContextOptionsBuilder) yöntem türetilmiş bağlamda geçersiz kılındıysa yine de çalıştırılır. OnConfiguring(DbContextOptionsBuilder) yapılandırma, burada gerçekleştirilen yapılandırmaya ek olarak uygulanır.

Seçeneklerin bağlamınıza geçirilebilmesi için bağlamınız üzerinde bunu alıp DbContextOptions<TContext> temel oluşturucusuna geçiren bir oluşturucuyu DbContextkullanıma sunmanız gerekir.

lifetime
ServiceLifetime

Fabrikanın ve seçeneklerin kaydedildiği yaşam süresi. Varsayılan değer: Singleton

Döndürülenler

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

Açıklamalar

Bağlam türünü doğrudan kaydetmek yerine fabrikanın kaydedilmesi, yeni DbContext örneklerin kolayca oluşturulmasını sağlar. Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrüyle uyumlu olmadığı diğer durumlar için fabrikanın kaydedilmesi önerilir.

Blazor gibi uygulamanızda bağımlılık eklemeyi kullanırken 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.

Kolaylık sağlamak için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak da kaydeder. Bu, bağlam örneğinin bağımlılık ekleme kapsamından doğrudan çözümlenmesine veya fabrika tarafından uygun şekilde oluşturulmasına olanak tanır.

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 fabrikalarını kullanma .

Şunlara uygulanır

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

IDbContextFactory<TContext> Verilen DbContext türün IServiceCollection örneklerini oluşturmak için 'a kaydeder.

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

Tür Parametreleri

TContext

Fabrika tarafından oluşturulacak türü DbContext .

Parametreler

serviceCollection
IServiceCollection

IServiceCollection hizmet eklenecek.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

bağlamını yapılandırmak DbContextOptions için isteğe bağlı bir eylem. Bu, türetilmiş bağlamınızdaki yöntemini geçersiz kılarak bağlam yapılandırmasını gerçekleştirmeye OnConfiguring(DbContextOptionsBuilder) bir alternatif sağlar.

Burada bir eylem sağlanırsa, OnConfiguring(DbContextOptionsBuilder) yöntem türetilmiş bağlamda geçersiz kılındıysa yine de çalıştırılır. OnConfiguring(DbContextOptionsBuilder) yapılandırma, burada gerçekleştirilen yapılandırmaya ek olarak uygulanır.

Seçeneklerin bağlamınıza geçirilebilmesi için bağlamınız üzerinde bunu alıp DbContextOptions<TContext> temel oluşturucusuna geçiren bir oluşturucuyu DbContextkullanıma sunmanız gerekir.

lifetime
ServiceLifetime

Fabrikanın ve seçeneklerin kaydedildiği yaşam süresi. Varsayılan değer: Singleton

Döndürülenler

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

Açıklamalar

Bağlam türünü doğrudan kaydetmek yerine fabrikanın kaydedilmesi, yeni DbContext örneklerin kolayca oluşturulmasını sağlar. Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrüyle uyumlu olmadığı diğer durumlar için fabrikanın kaydedilmesi önerilir.

Blazor gibi uygulamanızda bağımlılık eklemeyi kullanırken 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.

Kolaylık sağlamak için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak da kaydeder. Bu, bağlam örneğinin bağımlılık ekleme kapsamından doğrudan çözümlenmesine veya fabrika tarafından uygun şekilde oluşturulmasına olanak tanır.

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ı AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) öneririz.

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 ileDbContext kullanma ve DbContext fabrikalarını kullanma .

Şunlara uygulanır