Sobrescribir los nombres de tabla de identidad predeterminados

asp.net-core asp.net-core-mvc asp.net-mvc entity-framework-core

Pregunta

Me gustaría cambiar el nombre de los nombres de tabla de identidad predeterminados:

  • AspNetRoles
  • AspNetUserClaims
  • AspNetUserLogins
  • AspNetUserRoles
  • AspNetUsers

Entiendo cómo hacer esto usando EF6:

 protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<IdentityUser>()
            .ToTable("Users", "dbo").Property(p => p.Id).HasColumnName("User_Id");
        modelBuilder.Entity<User>()
            .ToTable("Users", "dbo").Property(p => p.Id).HasColumnName("User_Id");
    }

Sin embargo, estoy luchando con EF7 ya que DbModelBuilder ha sido reemplazado por ModelBuilder. ¿Alguna sugerencia?

Respuesta aceptada

Debe usar ForSqlServer o ForRelational en SqlServerPropertyBuilder para cambiar el nombre de la columna y en el ModelBuilder para cambiar el nombre de la tabla

modelBuilder.Entity<IdentityUser>()
                .Property(o => o.Id)
                .ForSqlServer()
                .Column("User_Id")

 modelBuilder.Entity<IdentityUser>()
                    .ForSqlServer()
                    .Table("User")

Actualización: Para la versión beta 5 ya no es obligatorio usar ForSqlServer


Respuesta popular

Tratar

    builder.Entity<ApplicationUser>().ToTable("User");
    builder.Entity<ApplicationRole>().ToTable("Role");

    builder.Entity<IdentityUserRole<string>>().ToTable("UserRole");
    builder.Entity<IdentityUserClaim<string>>().ToTable("UserClaim");
    builder.Entity<IdentityUserLogin<string>>().ToTable("UserLogin");

    builder.Entity<IdentityRoleClaim<string>>().ToTable("RoleClaim");
    builder.Entity<IdentityUserToken<string>>().ToTable("UserToken");

@noelbr




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué