IdentityServer4自定义ConfigurationDBContext
问题描述:
是否可以自定义ConfigurationDBContext?我已经创建一个,代码如下IdentityServer4自定义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();
}
此接口的定义,是有让开发者自定义背景。如果您DONOT要继承ConfigurationDbContext
(绑定到Ef.Core.DbContext
),你可以建立自己的执行IConfigurationDbContext
只需要添加IDbContextFactory<MyConfigurationDbContext>
public class IdentityConfigurationDbContextFactory : IDbContextFactory<MyConfigurationDbContext>
{
public MyConfigurationDbContext Create(DbContextFactoryOptions options)
{
//....
}
}
MJK,任何与此运气? – capiono
是的,我已经实现并添加了两个实体。大多数时候,我只是传递新初始化的对象。 – MJK
我可以就如何实现您的自定义ConfigurationDbContext分享您的答案吗?我得到这个错误:'IdentityConfigurationDbContext'上没有找到无参数的构造函数。可以在'IdentityConfigurationDbContext'中添加无参数构造函数,或者在与'IdentityConfigurationDbContext'相同的程序集中添加'IDbContextFactory的实现。 –
capiono