2016-10-25 2 views
-1

私のデータベースにデフォルトのAspNet IDテーブル(AspNetUsers、AspNetLoginなど)をコピーしても問題なく動作しました。それから私は、自分の名前を変更し、以下のような方法で自分自身のコンテキストを作った:カスタムデータベースでのAsp.Net IDの使用

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

しかし、私はエラーを取得していますように、アプリケーションはまだ古い名前を持つテーブルを探しているように思える:

enter image description here

私がしなかった必要な変更は何ですか?

+0

データベースを更新するために移行を使用しましたか? –

答えて

0

How can I change the table names when using Visual Studio 2013 ASP.NET Identity?によると、これは動作するはずです:

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

をもあなたはASP.NETアイデンティティがデフォルトのASPNETDB.MDFデータベースを使用していることを罠に陥るとのようなもののためにあなたのweb.configファイルをチェックしていないことを確認してくださいこの:

<connectionStrings> 
    <remove name="LocalSqlServer" /> 
    <add connectionString="yourdatabase" name="LocalSqlServer" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
関連する問題