Ich habe eine benutzerdefinierte IConfigurationDbContext
erstellt, um IDS4 mit Oracle zu verwenden.mit IdentityServer4 mit benutzerdefinierter Konfiguration DBContext
public class IdentityConfigurationDbContext : DbContext, IConfigurationDbContext {
private readonly ConfigurationStoreOptions storeOptions;
public IdentityConfigurationDbContext(DbContextOptions<IdentityServerDbContext> options)
: base(options) {
}
public IdentityConfigurationDbContext(DbContextOptions<ConfigurationDbContext> options, ConfigurationStoreOptions storeOptions)
: base(options) {
this.storeOptions = storeOptions ?? throw new ArgumentNullException(nameof(storeOptions));
}
public DbSet<Client> Clients { get; set; }
public DbSet<IdentityResource> IdentityResources { get; set; }
public DbSet<ApiResource> ApiResources { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder) {
modelBuilder.ConfigureClientContext(storeOptions);
modelBuilder.ConfigureResourcesContext(storeOptions);
base.OnModelCreating(modelBuilder);
}
}
in ConfigureService:
services.AddIdentityServer()
.AddTemporarySigningCredential()
.AddAspNetIdentity<ApplicationUser>();
Ich habe auch meine Gewohnheit IClientStore
, die an dem Behälter wie folgt hinzugefügt:
services.AddScoped<IClientStore, ClientStore>();
wenn ich IdentityConfigurationDbContext
Migration laufen lasse, erhalte ich diese Fehlermeldung:
System.InvalidOperationException: No database provider has been configured for this DbContext.
Ich habe versucht, dies zu tun:
services.AddDbContext<IdentityConfigurationDbContext>(builder => builder.UseOracle(connectionString, options => {
options.MigrationsAssembly(migrationsAssembly);
options.MigrationsHistoryTable("EF_MIGRATION_HISTORY");
}));
Ist dies der richtige Weg, um eine benutzerdefinierte DbContext mit IDS4 zu benutzen? und wie behebe ich dieses Problem und schließe meine Migration ab?
ich das tat, aber habe diesen Fehler während der Migration: kein parameterlosen Konstruktor wurde auf ‚IdentityConfigurationDbContext‘ gefunden. Fügen Sie entweder einen parameterlosen Konstruktor zu 'IdentityConfigurationDbContext' hinzu oder fügen Sie eine Implementierung von 'IDbContextFactory' in derselben Assembly wie 'IdentityConfigurationDbContext' hinzu. –
capiono
obwohl Sie geerbt von ** ConfigurationDbContext ** – MJK
Ja, ich habe auch eine No parameterless Konstruktor gleichen Sache. – capiono