EntityFrameworkServiceCollectionExtensions.AddDbContextFactory Yöntem

Tanım

Aşırı Yüklemeler

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

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

Bağlam türünü kaydetmek yerine fabrika kaydı, yeni örneklerin kolayca oluşturulmasına izin verir DbContext . Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrü ile hizalanmadığı diğer durumlar için bir fabrikası kaydetmek önerilir.

Uygulamanıza bağımlılık ekleme (Blazor gibi) kullanılırken bu yöntemi kullanın. Bağımlılık ekleme 'yi kullanmayan uygulamalar için, DbContext Oluşturucu ile doğrudan örnek oluşturmayı düşünün. OnConfiguring(DbContextOptionsBuilder)Daha sonra yöntemi bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için geçersiz kılınabilir.

Kolaylık olması için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak kaydeder. Bu, bir bağlam örneğinin bir bağımlılık ekleme kapsamından doğrudan veya fabrika tarafından oluşturulan uygun şekilde çözümlenme olanağı sağlar.

Bu aşırı yükleme IDbContextFactory<TContext> , EF Core ile gönderilen varsayılan fabrikası kullanmak yerine, belirli bir uygulamanın kaydedilmesini sağlar.

Bu aşırı yükleme, uygulamanın ' i sağlayan bir öğesine sahiptir optionsAction IServiceProvider . Bu, iç hizmetlerini birincil uygulama hizmeti sağlayıcısından çözümlemek üzere Entity Framework Core ayarlamak istiyorsanız kullanışlıdır. Varsayılan olarak, AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) Entity Framework IServiceProvider iç Entity Framework Hizmetleri için kendi oluşturup bakımını yapmasına izin veren kullanmanızı öneririz.

Entity Framework Core, aynı örnekte çalıştırılan birden çok paralel işlemi desteklemez DbContext . Bu, zaman uyumsuz sorguların paralel yürütmesini ve birden çok iş parçacığından açık olan eşzamanlı kullanımı içerir. Bu nedenle, her zaman zaman uyumsuz çağrıları bekler veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi için bkz. DbContext Threading sorunlarını önleme .

Daha fazla bilgi için bkz. bağımlılık ekleme ve DbContext fabrikalarını kullanarak DbContext kullanma .

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

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

Bağlam türünü kaydetmek yerine fabrika kaydı, yeni örneklerin kolayca oluşturulmasına izin verir DbContext . Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrü ile hizalanmadığı diğer durumlar için bir fabrikası kaydetmek önerilir.

Uygulamanıza bağımlılık ekleme (Blazor gibi) kullanılırken bu yöntemi kullanın. Bağımlılık ekleme 'yi kullanmayan uygulamalar için, DbContext Oluşturucu ile doğrudan örnek oluşturmayı düşünün. OnConfiguring(DbContextOptionsBuilder)Daha sonra yöntemi bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için geçersiz kılınabilir.

Kolaylık olması için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak kaydeder. Bu, bir bağlam örneğinin bir bağımlılık ekleme kapsamından doğrudan veya fabrika tarafından oluşturulan uygun şekilde çözümlenme olanağı sağlar.

Bu aşırı yükleme IDbContextFactory<TContext> , EF Core ile gönderilen varsayılan fabrikası kullanmak yerine, belirli bir uygulamanın kaydedilmesini sağlar.

Entity Framework Core, aynı örnekte çalıştırılan birden çok paralel işlemi desteklemez DbContext . Bu, zaman uyumsuz sorguların paralel yürütmesini ve birden çok iş parçacığından açık olan eşzamanlı kullanımı içerir. Bu nedenle, her zaman zaman uyumsuz çağrıları bekler veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi için bkz. DbContext Threading sorunlarını önleme .

Daha fazla bilgi için bkz. bağımlılık ekleme ve DbContext fabrikalarını kullanarak DbContext kullanma .

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

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

Bağlam türünü kaydetmek yerine fabrika kaydı, yeni örneklerin kolayca oluşturulmasına izin verir DbContext . Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrü ile hizalanmadığı diğer durumlar için bir fabrikası kaydetmek önerilir.

Uygulamanıza bağımlılık ekleme (Blazor gibi) kullanılırken bu yöntemi kullanın. Bağımlılık ekleme 'yi kullanmayan uygulamalar için, DbContext Oluşturucu ile doğrudan örnek oluşturmayı düşünün. OnConfiguring(DbContextOptionsBuilder)Daha sonra yöntemi bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için geçersiz kılınabilir.

Kolaylık olması için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak kaydeder. Bu, bir bağlam örneğinin bir bağımlılık ekleme kapsamından doğrudan veya fabrika tarafından oluşturulan uygun şekilde çözümlenme olanağı sağlar.

Entity Framework Core, aynı örnekte çalıştırılan birden çok paralel işlemi desteklemez DbContext . Bu, zaman uyumsuz sorguların paralel yürütmesini ve birden çok iş parçacığından açık olan eşzamanlı kullanımı içerir. Bu nedenle, her zaman zaman uyumsuz çağrıları bekler veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi için bkz. DbContext Threading sorunlarını önleme .

Daha fazla bilgi için bkz. bağımlılık ekleme ve DbContext fabrikalarını kullanarak DbContext kullanma .

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

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

Bağlam türünü kaydetmek yerine fabrika kaydı, yeni örneklerin kolayca oluşturulmasına izin verir DbContext . Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrü ile hizalanmadığı diğer durumlar için bir fabrikası kaydetmek önerilir.

Uygulamanıza bağımlılık ekleme (Blazor gibi) kullanılırken bu yöntemi kullanın. Bağımlılık ekleme 'yi kullanmayan uygulamalar için, DbContext Oluşturucu ile doğrudan örnek oluşturmayı düşünün. OnConfiguring(DbContextOptionsBuilder)Daha sonra yöntemi bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için geçersiz kılınabilir.

Kolaylık olması için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak kaydeder. Bu, bir bağlam örneğinin bir bağımlılık ekleme kapsamından doğrudan veya fabrika tarafından oluşturulan uygun şekilde çözümlenme olanağı sağlar.

Bu aşırı yükleme, uygulamanın ' i sağlayan bir öğesine sahiptir optionsAction IServiceProvider . Bu, iç hizmetlerini birincil uygulama hizmeti sağlayıcısından çözümlemek üzere Entity Framework Core ayarlamak istiyorsanız kullanışlıdır. Varsayılan olarak, AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) Entity Framework IServiceProvider iç Entity Framework Hizmetleri için kendi oluşturup bakımını yapmasına izin veren kullanmanızı öneririz.

Entity Framework Core, aynı örnekte çalıştırılan birden çok paralel işlemi desteklemez DbContext . Bu, zaman uyumsuz sorguların paralel yürütmesini ve birden çok iş parçacığından açık olan eşzamanlı kullanımı içerir. Bu nedenle, her zaman zaman uyumsuz çağrıları bekler veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi için bkz. DbContext Threading sorunlarını önleme .

Daha fazla bilgi için bkz. bağımlılık ekleme ve DbContext fabrikalarını kullanarak DbContext kullanma .

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

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

Bağlam türünü kaydetmek yerine fabrika kaydı, yeni örneklerin kolayca oluşturulmasına izin verir DbContext . Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrü ile hizalanmadığı diğer durumlar için bir fabrikası kaydetmek önerilir.

Uygulamanıza bağımlılık ekleme (Blazor gibi) kullanılırken bu yöntemi kullanın. Bağımlılık ekleme 'yi kullanmayan uygulamalar için, DbContext Oluşturucu ile doğrudan örnek oluşturmayı düşünün. OnConfiguring(DbContextOptionsBuilder)Daha sonra yöntemi bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için geçersiz kılınabilir.

Kolaylık olması için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak kaydeder. Bu, bir bağlam örneğinin bir bağımlılık ekleme kapsamından doğrudan veya fabrika tarafından oluşturulan uygun şekilde çözümlenme olanağı sağlar.

Bu aşırı yükleme IDbContextFactory<TContext> , EF Core ile gönderilen varsayılan fabrikası kullanmak yerine, belirli bir uygulamanın kaydedilmesini sağlar.

Bu aşırı yükleme, uygulamanın ' i sağlayan bir öğesine sahiptir optionsAction IServiceProvider . Bu, iç hizmetlerini birincil uygulama hizmeti sağlayıcısından çözümlemek üzere Entity Framework Core ayarlamak istiyorsanız kullanışlıdır. Varsayılan olarak, AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) Entity Framework IServiceProvider iç Entity Framework Hizmetleri için kendi oluşturup bakımını yapmasına izin veren kullanmanızı öneririz.

Entity Framework Core, aynı örnekte çalıştırılan birden çok paralel işlemi desteklemez DbContext . Bu, zaman uyumsuz sorguların paralel yürütmesini ve birden çok iş parçacığından açık olan eşzamanlı kullanımı içerir. Bu nedenle, her zaman zaman uyumsuz çağrıları bekler veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi için bkz. DbContext Threading sorunlarını önleme .

Daha fazla bilgi için bkz. bağımlılık ekleme ve DbContext fabrikalarını kullanarak DbContext kullanma .

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

DbContextFabrika tarafından oluşturulacak tür.

TFactory

IDbContextFactory<TContext>Kayıt yapılacak türü.

Parametreler

serviceCollection
IServiceCollection

IServiceCollectionHizmet eklemek için.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

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

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

Seçeneklerinizin bağlamına geçirilmesi için, içeriğiniz üzerinde bir oluşturucu oluşturmanız DbContextOptions<TContext> ve temel oluşturucusuna geçirmelisiniz DbContext .

lifetime
ServiceLifetime

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

Döndürülenler

IServiceCollection

Birden çok çağrının zincirleme kullanılabilmesi için aynı hizmet koleksiyonu.

Şunlara uygulanır

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

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

Bağlam türünü kaydetmek yerine fabrika kaydı, yeni örneklerin kolayca oluşturulmasına izin verir DbContext . Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrü ile hizalanmadığı diğer durumlar için bir fabrikası kaydetmek önerilir.

Uygulamanıza bağımlılık ekleme (Blazor gibi) kullanılırken bu yöntemi kullanın. Bağımlılık ekleme 'yi kullanmayan uygulamalar için, DbContext Oluşturucu ile doğrudan örnek oluşturmayı düşünün. OnConfiguring(DbContextOptionsBuilder)Daha sonra yöntemi bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için geçersiz kılınabilir.

Kolaylık olması için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak kaydeder. Bu, bir bağlam örneğinin bir bağımlılık ekleme kapsamından doğrudan veya fabrika tarafından oluşturulan uygun şekilde çözümlenme olanağı sağlar.

Bu aşırı yükleme IDbContextFactory<TContext> , EF Core ile gönderilen varsayılan fabrikası kullanmak yerine, belirli bir uygulamanın kaydedilmesini sağlar.

Entity Framework Core, aynı örnekte çalıştırılan birden çok paralel işlemi desteklemez DbContext . Bu, zaman uyumsuz sorguların paralel yürütmesini ve birden çok iş parçacığından açık olan eşzamanlı kullanımı içerir. Bu nedenle, her zaman zaman uyumsuz çağrıları bekler veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi için bkz. DbContext Threading sorunlarını önleme .

Daha fazla bilgi için bkz. bağımlılık ekleme ve DbContext fabrikalarını kullanarak DbContext kullanma .

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

DbContextFabrika tarafından oluşturulacak tür.

TFactory

IDbContextFactory<TContext>Kayıt yapılacak türü.

Parametreler

serviceCollection
IServiceCollection

IServiceCollectionHizmet eklemek için.

optionsAction
Action<DbContextOptionsBuilder>

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

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

Seçeneklerinizin bağlamına geçirilmesi için, içeriğiniz üzerinde bir oluşturucu oluşturmanız DbContextOptions<TContext> ve temel oluşturucusuna geçirmelisiniz DbContext .

lifetime
ServiceLifetime

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

Döndürülenler

IServiceCollection

Birden çok çağrının zincirleme kullanılabilmesi için aynı hizmet koleksiyonu.

Şunlara uygulanır

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

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

Bağlam türünü kaydetmek yerine fabrika kaydı, yeni örneklerin kolayca oluşturulmasına izin verir DbContext . Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrü ile hizalanmadığı diğer durumlar için bir fabrikası kaydetmek önerilir.

Uygulamanıza bağımlılık ekleme (Blazor gibi) kullanılırken bu yöntemi kullanın. Bağımlılık ekleme 'yi kullanmayan uygulamalar için, DbContext Oluşturucu ile doğrudan örnek oluşturmayı düşünün. OnConfiguring(DbContextOptionsBuilder)Daha sonra yöntemi bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için geçersiz kılınabilir.

Kolaylık olması için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak kaydeder. Bu, bir bağlam örneğinin bir bağımlılık ekleme kapsamından doğrudan veya fabrika tarafından oluşturulan uygun şekilde çözümlenme olanağı sağlar.

Entity Framework Core, aynı örnekte çalıştırılan birden çok paralel işlemi desteklemez DbContext . Bu, zaman uyumsuz sorguların paralel yürütmesini ve birden çok iş parçacığından açık olan eşzamanlı kullanımı içerir. Bu nedenle, her zaman zaman uyumsuz çağrıları bekler veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi için bkz. DbContext Threading sorunlarını önleme .

Daha fazla bilgi için bkz. bağımlılık ekleme ve DbContext fabrikalarını kullanarak DbContext kullanma .

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

DbContextFabrika tarafından oluşturulacak tür.

Parametreler

serviceCollection
IServiceCollection

IServiceCollectionHizmet eklemek için.

optionsAction
Action<DbContextOptionsBuilder>

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

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

Seçeneklerinizin bağlamına geçirilmesi için, içeriğiniz üzerinde bir oluşturucu oluşturmanız DbContextOptions<TContext> ve temel oluşturucusuna geçirmelisiniz DbContext .

lifetime
ServiceLifetime

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

Döndürülenler

IServiceCollection

Birden çok çağrının zincirleme kullanılabilmesi için aynı hizmet koleksiyonu.

Şunlara uygulanır

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

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

Bağlam türünü kaydetmek yerine fabrika kaydı, yeni örneklerin kolayca oluşturulmasına izin verir DbContext . Blazor uygulamaları ve bağımlılık ekleme kapsamının bağlam ömrü ile hizalanmadığı diğer durumlar için bir fabrikası kaydetmek önerilir.

Uygulamanıza bağımlılık ekleme (Blazor gibi) kullanılırken bu yöntemi kullanın. Bağımlılık ekleme 'yi kullanmayan uygulamalar için, DbContext Oluşturucu ile doğrudan örnek oluşturmayı düşünün. OnConfiguring(DbContextOptionsBuilder)Daha sonra yöntemi bir bağlantı dizesi ve diğer seçenekleri yapılandırmak için geçersiz kılınabilir.

Kolaylık olması için, bu yöntem bağlam türünün kendisini kapsamlı bir hizmet olarak kaydeder. Bu, bir bağlam örneğinin bir bağımlılık ekleme kapsamından doğrudan veya fabrika tarafından oluşturulan uygun şekilde çözümlenme olanağı sağlar.

Bu aşırı yükleme, uygulamanın ' i sağlayan bir öğesine sahiptir optionsAction IServiceProvider . Bu, iç hizmetlerini birincil uygulama hizmeti sağlayıcısından çözümlemek üzere Entity Framework Core ayarlamak istiyorsanız kullanışlıdır. Varsayılan olarak, AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) Entity Framework IServiceProvider iç Entity Framework Hizmetleri için kendi oluşturup bakımını yapmasına izin veren kullanmanızı öneririz.

Entity Framework Core, aynı örnekte çalıştırılan birden çok paralel işlemi desteklemez DbContext . Bu, zaman uyumsuz sorguların paralel yürütmesini ve birden çok iş parçacığından açık olan eşzamanlı kullanımı içerir. Bu nedenle, her zaman zaman uyumsuz çağrıları bekler veya paralel olarak yürütülen işlemler için ayrı DbContext örnekleri kullanın. Daha fazla bilgi için bkz. DbContext Threading sorunlarını önleme .

Daha fazla bilgi için bkz. bağımlılık ekleme ve DbContext fabrikalarını kullanarak DbContext kullanma .

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

DbContextFabrika tarafından oluşturulacak tür.

Parametreler

serviceCollection
IServiceCollection

IServiceCollectionHizmet eklemek için.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

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

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

Seçeneklerinizin bağlamına geçirilmesi için, içeriğiniz üzerinde bir oluşturucu oluşturmanız DbContextOptions<TContext> ve temel oluşturucusuna geçirmelisiniz DbContext .

lifetime
ServiceLifetime

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

Döndürülenler

IServiceCollection

Birden çok çağrının zincirleme kullanılabilmesi için aynı hizmet koleksiyonu.

Şunlara uygulanır