具有自定义 ConfigurationDBContext 的 IdentityServer4

IdentityServer4 with a customise ConfigurationDBContext

自定义ConfigurationDBContext可以吗?我已经创建了一个,代码如下

public class MyConfigurationDbContext : ConfigurationDbContext
{    
        public MyConfigurationDbContext(DbContextOptions<ConfigurationDbContext> options, 
                ConfigurationStoreOptions storeOptions)
                : base(options, storeOptions)
        {                
        }
}

我注意到 ConfigurationDBContext 需要特殊的 DbContextOptions

DbContextOptions<ConfigurationDbContext>

我现在有点困惑。在我继续之前,我只想检查一下之前是否有人这样做过?或者,如果有人可以指出与此相关的项目或教程。

IConfigurationDbContext的定义来自IdentityServer4.EntityFramework

public interface IConfigurationDbContext : IDisposable
{
    DbSet<Client> Clients { get; set; }
    DbSet<IdentityResource> IdentityResources { get; set; }
    DbSet<ApiResource> ApiResources { get; set; }

    int SaveChanges();
    Task<int> SaveChangesAsync();
}

此接口允许开发人员自定义上下文。如果您不想继承 ConfigurationDbContext(绑定到 Ef.Core.DbContext),您可以构建自己的 IConfigurationDbContext 实现,只需添加 IDbContextFactory<MyConfigurationDbContext>

public class IdentityConfigurationDbContextFactory : IDbContextFactory<MyConfigurationDbContext>
{
    public MyConfigurationDbContext Create(DbContextFactoryOptions options)
    {
        //....
    }
}