Jak mogę zmienić nazwy tabel podczas korzystania z tożsamości ASP.NET?

Używam wersji wydania (RTM, nie RC) Visual Studio 2013 (pobranej z MSDN 2013-10-18), a zatem najnowszej (RTM) wersji AspNet.Identity. Kiedy tworzę nowy projekt internetowy, wybieram „Indywidualne konta użytkowników” w celu uwierzytelnienia. Spowoduje to utworzenie następujących tabel:

AspNetRolesAspNetUserClaimsAspNetUserLoginsAspNetUserRolesAspNetUsers

Po zarejestrowaniu nowego użytkownika (przy użyciu domyślnego szablonu) tworzone są te tabele (wymienione powyżej), a tabela AspNetUsers ma wstawiony rekord zawierający:

IDNazwa UżytkownikaPasswordHashSecurityStampDyskryminator

Dodatkowo, dodając właściwości publiczne do klasy „ApplicationUser”, pomyślnie dodałem dodatkowe pola do tabeli AspNetUsers, takie jak „FirstName”, „LastName”, „PhoneNumber” itp.

Oto moje pytanie. Czy istnieje sposób na zmianę nazw powyższych tabel (gdy są one tworzone po raz pierwszy) lub czy będą zawsze nazywane za pomocąAspNet prefiks jak powyżej? Jeśli nazwy tabel mogą być nazywane inaczej, proszę wyjaśnić, w jaki sposób.

-- AKTUALIZACJA --

Zaimplementowałem rozwiązanie @Hao Kung. Tworzy nową tabelę (na przykład nazwałem ją MyUsers), ale nadal tworzy tabelę AspNetUsers. Celem jest zastąpienie tabeli „AspNetUsers” tabelą „MyUsers”. Zobacz poniższy kod i obraz utworzonych tabel.

Właściwie chciałbym wymienić każdyAspNet tabela z moim własnym nazwiskiem ... Na przykład, MyRoles, MyUserClaims, MyUserLogins, MyUserRoles i MyUsers.

Jak mogę to osiągnąć i skończyć z jednym zestawem tabel?

public class ApplicationUser : IdentityUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string PostalCode { get; set; }
    public string PhonePrimary { get; set; }
    public string PhoneSecondary { get; set; }
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext(): base("DefaultConnection")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<IdentityUser>().ToTable("MyUsers");
    }
}

- AKTUALIZACJA ODPOWIEDZI -

Podziękowania dla Hao Kunga i Petera Stulinskiego. To rozwiązało mój problem ...

    protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<IdentityUser>().ToTable("MyUsers").Property(p => p.Id).HasColumnName("UserId");
        modelBuilder.Entity<ApplicationUser>().ToTable("MyUsers").Property(p => p.Id).HasColumnName("UserId");
        modelBuilder.Entity<IdentityUserRole>().ToTable("MyUserRoles");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("MyUserLogins");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("MyUserClaims");
        modelBuilder.Entity<IdentityRole>().ToTable("MyRoles");
    }

questionAnswers(5)

yourAnswerToTheQuestion