Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Raphael_i7

Entity framework 6: erro entre contextos

Recommended Posts

Estou usando dois contextos: Um para o Asp.Net Identity e outro para a minha aplicação.

Criei a entidade "Usuario" para representar a tabela "AspNetUsers" do Identity, colocando nela todas as propriedades que tem na tabela "AspNetUsers".

Através do Fluent Api mapeei a entidade "Usuario" da seguinte forma:

 

public class UsuarioConfig : EntityTypeConfiguration<Usuario>

{

          public UsuarioConfig()

          {

                    ToTable("AspNetUsers");

 

                    HasKey(x => x.Id);

 

                    Property(x => x.Nome)

                                .HasMaxLength(100)

                                .IsRequired();

 

                    Property(x => x.Email)

                                .HasMaxLength(100)

                                .IsRequired();

 

                    Property(x => x.UserName)

                                .HasMaxLength(100)

                                .IsRequired();

          }

}

 

E depois adicionei ela no "OnModelCreating()" do contexto da minha aplicação:

 

protected override void OnModelCreating(DbModelBuilder modelBuilder)

{

          base.OnModelCreating(modelBuilder);

          modelBuilder.Configurations.Add(new UsuarioConfig());

          ...

}

 

E no contexto do Identity coloquei essa mesma configuração diretamente no "OnModelCreating()":

 

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>, IDisposable

{

          public ApplicationDbContext() : base("DefaultConnection") { }

 

          protected override void OnModelCreating(DbModelBuilder modelBuilder)

          {

                    base.OnModelCreating(modelBuilder);

 

                    modelBuilder.Entity<ApplicationUser>()

                                        .ToTable("AspNetUsers");

 

                    modelBuilder.Entity<ApplicationUser>()

                                        .HasKey(x => x.Id);

 

                    modelBuilder.Entity<ApplicationUser>()

                                        .Property(x => x.Nome)

                                        .IsRequired()

                                        .HasMaxLength(100);

 

                    modelBuilder.Entity<ApplicationUser>()

                                        .Property(x => x.Email)

                                        .IsRequired()

                                        .HasMaxLength(100);

 

                    modelBuilder.Entity<ApplicationUser>()

                                        .Property(x => x.UserName)

                                        .HasMaxLength(100)

                                        .IsRequired();

          }

 

          public static ApplicationDbContext Create()

          {

                    return new ApplicationDbContext();

          }

}

 

Mas ao dar o Update-Database, o EF6 reclama que já existe a tabela "AspNetUsers", mas eu não queria que ele tentasse criar a tabela, mas somente referenciá-la ou que atualizasse ela. Tem alguma forma de dizer ao EF6 para que ele não tente criar a tabela novamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×