ASP.NET Identity: Individuelle Tabellen-Benamung

ASP.NET Identity: Individuelle Tabellen-Benamung

ASP.NET Identity als Ablösung des älteren ASP.NET Membership hat sich mittlerweile als Standardlösung einer flexiblen Identity-Verwaltung in ASP.NET etabliert. Standardmäßig wird dabei mit dem Entity Framework als Data Provider und Code First eine Datenbank im SQL Server erzeugt, welche die folgende Struktur besitzt:

ASP.NET Identity Default Table Structure

Nun ist es zum Beispiel möglich, mittels einer von IdentityUser abgeleiteten Klasse zusätzliche Profilinformationen zu hinterlegen, die dann als zusätzliche Spalten in der Tabelle AspNetUsers gespeichert werden. Soweit so gut, doch als Entwickler möchte ich auch die Möglichkeit haben, Einfluss auf die standardmäßig automatisch generierten Tabellennamen zu haben. Evtl. möchte ich z.B. kein Prefix "AspNet" vor den Tabellennamen stehen haben, wie werde ich diese also los?

Möglich ist das, indem ein individuelles Mapping im EF-DbContext bei OnModelCreating() hinterlegt wird:

[DbConfigurationType(typeof(CodedDbConfiguration))] 
public class ApplicationIdentityDbContext : IdentityDbContext
{
    ...

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

        modelBuilder.Entity<ApplicationUser>().ToTable("Users");
        modelBuilder.Entity<IdentityRole>().ToTable("Roles");
        modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims");
    }
}

Bei der Klasse ApplicationUser handelt es sich hier um die von IdentityUser abgeleitete Klasse, welche zusätzliche Profilinformationen beinhaltet und den Benutzer einer ASP.NET-Anwendung beschreibt.

Ich bin freiberuflicher Senior C#/.NET Softwareentwickler im Raum Frankfurt/Main. Mit Leidenschaft für Software-Design, Clean Code und moderne Technologien in den Bereichen Web, Win und Mobile.

0 Kommentare

Eine Antwort hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*