2016-10-25 2 views
-1

Ich kopiert Standard AspNet Identity-Tabellen (AspNetUsers, AspNetLogin usw.) in meine Datenbank und alles hat gut funktioniert. Dann änderte es ihre Namen und machte meinen eigenen Kontext mit folgenden Methode:Verwendung von Asp.Net Identity mit benutzerdefinierten Datenbank

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

     modelBuilder.Entity<IdentityUser>() 
      .ToTable("tblUsers", "dbo"); 

     modelBuilder.Entity<IdentityRole>() 
      .ToTable("tblRoles", "dbo"); 

     modelBuilder.Entity<IdentityUserRole>() 
      .ToTable("tblUserRoles", "dbo"); 

     modelBuilder.Entity<IdentityUserClaim>() 
      .ToTable("tblUserClaims", "dbo"); 

     modelBuilder.Entity<IdentityUserLogin>() 
      .ToTable("tblUserLogins", "dbo"); 
    } 

Aber es scheint, als ob die Anwendung noch für Tabellen mit alten Namen suchen ist, wie ich bin immer Fehler:

enter image description here

Bitte, geben Sie mir die notwendigen Änderungen, die ich nicht gemacht habe?

+0

Haben Sie die Migration zur Aktualisierung der Datenbank verwendet? –

Antwort

0

Nach How can I change the table names when using Visual Studio 2013 ASP.NET Identity? sollte diese Arbeit:

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"); 
} 

auch sicher, Sie fallen nicht in eine Falle, dass ASP.NET Identität verwendet, um seinen Standard aspnetdb.mdf Datenbank und überprüfen Sie Ihre web.config für so etwas wie this:

<connectionStrings> 
    <remove name="LocalSqlServer" /> 
    <add connectionString="yourdatabase" name="LocalSqlServer" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
Verwandte Themen