2017-03-01 60 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) 
    { 
     //.... 
    } 
}