2017-03-01 53 views
1

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

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

我注意到,ConfigurationDBContext需要特殊DbContextOptions

DbContextOptions<ConfigurationDbContext> 

我现在有点糊涂了。在我进一步之前,只想检查有没有人做过这个?或者如果有人能指出这个项目或教程。

+0

MJK,任何与此运气? – capiono

+0

是的,我已经实现并添加了两个实体。大多数时候,我只是传递新初始化的对象。 – MJK

+0

我可以就如何实现您的自定义ConfigurationDbContext分享您的答案吗?我得到这个错误:'IdentityConfigurationDbContext'上没有找到无参数的构造函数。可以在'IdentityConfigurationDbContext'中添加无参数构造函数,或者在与'IdentityConfigurationDbContext'相同的程序集中添加'IDbContextFactory 的实现。 – capiono

回答

0

IConfigurationDbContextIdentityServer4.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) 
    { 
     //.... 
    } 
}