IdentityServer4具有自定义ConfigurationDBContext

时间:2017-03-01 12:29:51

标签: entity-framework-core dbcontext identityserver4

是否可以自定义ConfigurationDBContext?我已经创建了一个,代码在下面

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

我注意到ConfigurationDBContext需要特殊的DbContextOptions

DbContextOptions<ConfigurationDbContext>

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

1 个答案:

答案 0 :(得分:0)

IdentityServer4.EntityFramework

IConfigurationDbContext的定义
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)
    {
        //....
    }
}