具有自定义 ConfigurationDBContext 的 IdentityServer4
IdentityServer4 with a customise ConfigurationDBContext
自定义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();
}
此接口允许开发人员自定义上下文。如果您不想继承 ConfigurationDbContext
(绑定到 Ef.Core.DbContext
),您可以构建自己的 IConfigurationDbContext
实现,只需添加 IDbContextFactory<MyConfigurationDbContext>
public class IdentityConfigurationDbContextFactory : IDbContextFactory<MyConfigurationDbContext>
{
public MyConfigurationDbContext Create(DbContextFactoryOptions options)
{
//....
}
}
自定义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();
}
此接口允许开发人员自定义上下文。如果您不想继承 ConfigurationDbContext
(绑定到 Ef.Core.DbContext
),您可以构建自己的 IConfigurationDbContext
实现,只需添加 IDbContextFactory<MyConfigurationDbContext>
public class IdentityConfigurationDbContextFactory : IDbContextFactory<MyConfigurationDbContext>
{
public MyConfigurationDbContext Create(DbContextFactoryOptions options)
{
//....
}
}