Entity Framework Core 2.0: Como configurar a classe base abstrata uma vez

Eu tenho um modelo base:

public abstract class Status
{
     public string updateUserName { get; set; }
}

Em seguida, um modelo que estende o modelo básico definido acima:

public class Item : Status
{
     public int Id { get; set; }
     public string Description { get; set; }
}

Então eu defini classes de configuração para cada um:

public class ItemConfiguration : IEntityTypeConfiguration<Item>
{
    public void Configure(EntityTypeBuilder<Item> builder)
    {
        builder.ToTable("Item", "dbo").HasKey(c => c.Id);
        builder.Property(c => c.Description).IsRequired().HasMaxLength(100);
    }
}

public class StatusConfiguration : IEntityTypeConfiguration<Status>
{
    public void Configure(EntityTypeBuilder<Status> builder)
    {
        builder.Property(c => c.updateUserName).IsRequired().HasMaxLength(50);
    }

Agora, eu tenho a seguinte classe Context:

public class TestDbContext : DbContext
{
    public TestDbContext(DbContextOptions<TestDbContext> options) : base(options)
    {
    }

    public DbSet<Item> Item { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.ApplyConfiguration(new ItemConfiguration());
    }
}

Estou tentando descobrir como aplicar as configurações do modelo Status definidas na classe StatusConfiguration a todos os modelos que se estendem a ela (apenas um neste exemplo: Item). Eu gostaria de evitar definir a mesma configuração do modelo de status toda vez que ela for usada. O modelo Status será essencialmente metadados associados a cada registro de Item (ou seja, uma tabela de Itens no banco de dados que contém todas as propriedades definidas nos dois modelos; nada mais e nada menos).

Por exemplo, minha implementação atual é a seguinte classe ItemConfiguration sem usar a classe StatusConfiguration:

public class ItemConfiguration : IEntityTypeConfiguration<Item>
{
    public void Configure(EntityTypeBuilder<Item> builder)
    {
        builder.ToTable("Item", "dbo").HasKey(c => c.Id);
        builder.Property(c => c.Description).IsRequired().HasMaxLength(100);
        builder.Property(c => c.updateUserName).IsRequired().HasMaxLength(50);
    }
}

Essa implementação atual funciona corretamente e migra para o banco de dados conforme pretendido. Estou simplesmente procurando uma maneira mais gerenciável daqui para frente.

Minha suposição é que eu poderia estender a classe ItemConfiguration para incluir a classe StatusConfiguration, mas não consigo encontrar um exemplo desse método online. Espero que alguém com um pouco mais de experiência possa me indicar a direção certa.

Deixe-me saber se informações adicionais seriam úteis.

questionAnswers(1)

yourAnswerToTheQuestion