Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Estou com dúvida no curso de Entity Framework, no exercício do capítulo Configurando e Entendendo o Entity Framework.

Quando tento compilar o código ele me apresenta o seguinte erro: Error 2 'LojaEF.Entidades.EntidadesContext.OnModelCreating(System.Data.Entity.DbModelBuilder)': cannot change access modifiers when overriding 'protected' inherited member 'System.Data.Entity.DbContext.OnModelCreating(System.Data.Entity.DbModelBuilder)' D:\Alura\Loja\LojaEF\LojaEF\Entidades\EntidadesContext.cs 15 30 LojaEF

entendo que não posso fazer override do método OnModelCreating.

Abaixo o código: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.Entity;

namespace LojaEF.Entidades { public class EntidadesContext : DbContext { public DbSet Usuarios { get; set; }

public override void OnModelCreating(DbModelBuilder modelBuilder) { var usuarioBuilder = modelBuilder.Entity(); usuarioBuilder.ToTable("tbl_usuarios"); usuarioBuilder.Property(usuario => usuario.Nome).HasColumnName("col_nome"); usuarioBuilder.Property(usuario => usuario.Senha).HasColumnName("col_senha"); } } } Obrigado,

3 respostas
solução!

Olá Mônica, tudo bem?

Isso ocorre porque este método OnModelCreating do DbContext tem sua visibilidade como protected e você está deixando o mesmo como public.

O correto seria assim:


protected override void OnModelCreating(DbModelBuilder mb)
{
    var userBuilder = mb.Entity<User>();
    userBuilder.ToTable("tbl_Usuarios");
    userBuilder.Property(user => user.Name).HasColumnName("col_nome");
    userBuilder.Property(user => user.Pass).HasColumnName("col_senha");
}

Dica pra você quando for sobrescrever algum método no Visual Studio... Coloque primeiro o override e aí depois que der o espaço, ele vai listar todos os nomes dos métodos pra você sobrescrever... Quando selecionar um, ele automaticamente vai selecionar a visibilidade pra você.

Espero ter ajudado, qualquer coisa me avise. Até mais, Lincoln Pires.

Perfeito valeu Lincoln

Por nada.