EntityFrameworkServiceCollectionExtensions.AddDbContextFactory Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
Entity Framework
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin