IdentityServer4具有自定義ConfigurationDBContext

dbcontext entity-framework-core identityserver4

是否可以自定義ConfigurationDBContext?我已經創建了一個,代碼如下

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

我注意到ConfigurationDBContext需要特殊的DbContextOptions

DbContextOptions<ConfigurationDbContext>

我現在有點困惑。在我再進一步之前,只想檢查以前是否有人這樣做過?或者,如果有人可以指出關於此的項目或教程。

一般承認的答案

IdentityServer4.EntityFrameworkIConfigurationDbContext的定義

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


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow