我有一个DbContext是Identityserver4的一部分,我对entity-framework非常新手。
namespace IdentityServer4.EntityFramework.DbContexts
{
public class ConfigurationDbContext : DbContext, IConfigurationDbContext, IDisposable
{
public ConfigurationDbContext(DbContextOptions<ConfigurationDbContext> options, ConfigurationStoreOptions storeOptions);
public DbSet<Client> Clients { get; set; }
public DbSet<IdentityResource> IdentityResources { get; set; }
public DbSet<ApiResource> ApiResources { get; set; }
public Task<int> SaveChangesAsync();
protected override void OnModelCreating(ModelBuilder modelBuilder);
}
}
namespace IdentityServer4.EntityFramework.Entities
{
public class Client
{
// I want to add a column here
................
}
事情是我想扩展客户端类,它基本上是数据库中的客户端表,并添加一个新列。这是否可能?
由于它们是Identityserver4 dll的一部分,我不允许编辑这些文件。我唯一能想到的就是创建自己的db上下文并复制IdentityServer的内容,但这似乎有点过度,而且我不确定IdentityServer是否能够从新表中读取。
问题所在的列是我试图添加到Client表中的应用程序ID,该ID标识正在使用客户端的第三方开发人员。我们需要能够在出现问题或行为不当的情况下与他们联系。在最坏的情况下,禁止行为不当的开发人员。
Client
是一个实体。此外,DbContext 应该被用于创建和销毁,每次需要一个实例时都要创建一个新的 DbContext,而且你可以根据需要拥有多个 DbContext 类型。 - Gusman