Olá, Camila! Parece que você está tentando separar a lógica de mapeamento do Entity Framework Core para fora da classe de negócio, certo? Vou te ajudar com isso.
Para fazer isso, você pode criar uma classe de configuração separada para cada entidade. Essas classes devem implementar a interface IEntityTypeConfiguration<TEntity>
.
Vamos ver como ficaria no seu caso:
public class PersonagemConfiguration : IEntityTypeConfiguration<Personagem>
{
public void Configure(EntityTypeBuilder<Personagem> builder)
{
builder.ToTable("lotr_characters");
builder.Property(a => a.Id)
.HasColumnName("character_id");
builder.Property(a => a.Nome)
.HasColumnName("character_name")
.HasColumnType("nvarchar(60)")
.IsRequired();
}
}
Agora, no método OnModelCreating()
da sua classe PersonagemContexto
, você pode chamar o método ApplyConfiguration()
para aplicar essa configuração:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfiguration(new PersonagemConfiguration());
}
Dessa forma, você conseguiu separar o código de mapeamento para fora da classe de negócio, deixando o código mais organizado e fácil de manter.
Espero ter ajudado e bons estudos!