2016-07-24 2 views
0

Identity Nameテーブルの名前を変更する前に自分のアプリケーション名を使用しようとしています。だから私はオーバーライドされてきたOnModelCreating:OnModelCreateで名前が変更されたにもかかわらず、ASP.NET MigrationでAspNetUsersが使用されることがあります。

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

     modelBuilder.Entity<IdentityUser>().ToTable("appname_Users"); 
     modelBuilder.Entity<IdentityRole>().ToTable("appname_Roles"); 
     modelBuilder.Entity<IdentityUserClaim>().ToTable("appname_UserClaims"); 
     modelBuilder.Entity<IdentityUserLogin>().ToTable("appname_UserLogins"); 
     modelBuilder.Entity<IdentityUserRole>().ToTable("appname_UserRoles"); 
    } 

私は、移行フォルダを削除これらのテーブルが存在していなかったことを確認した、と走っ:

enable-migrations -Force 
update-database 

私は、サイトにログインしようとすると、それはまだ言いますdbo.AspNetUsersが見つかりません。

私は移行スクリプトをチェックすると、私は以下を参照してください:

CreateTable(
      "dbo.AspNetUsers", 
      c => new 
       { 
        Id = c.String(nullable: false, maxLength: 128), 
       }) 
      .PrimaryKey(t => t.Id) 
      .ForeignKey("dbo.appname_Users", t => t.Id) 
      .Index(t => t.Id); 

それも、それはAspNetUsersが必要であるという考えを取得している場合は?私はドキュメンテーションを精査して、何が起こっているのか分からない。どんな助けもありがとう。

答えて

1

データベースからすべてのIDテーブルを手動で削除します。その後onModelCreatingでカスタム・アイデンティティ・クラスを作成する場合、私はあなたがエンティティをやっている参照

+0

.........この方法では、私の作品

 modelBuilder.Entity<ApplicationUser>().ToTable("appname_Users"); modelBuilder.Entity<ApplicationRole>().HasKey<string>(r => r.Id).ToTable("appname_Roles"); modelBuilder.Entity<ApplicationUser>().HasMany<ApplicationUserRole>((ApplicationUser u) => u.UserRoles); modelBuilder.Entity<ApplicationUserRole>().HasKey(r => new { UserId = r.UserId, RoleId = r.RoleId }).ToTable("appname_UserRoles"); 

を使用

 modelBuilder.Entity<ApplicationUser>().ToTable("appname_Users"); modelBuilder.Entity<IdentityUserRole>().ToTable("appname_UserRoles"); modelBuilder.Entity<IdentityUserLogin>().ToTable("appname_UserLogins"); modelBuilder.Entity<IdentityUserClaim>().ToTable("appname_UserClaims"); modelBuilder.Entity<IdentityRole>().ToTable("appname_Roles"); 

を挿入と私はEntity をやっています..おそらくそれは問題ですか?私は違いが何であるのだろうか –

+0

魅力のように働いた!それは私がやっていたことです、私はApplicationUserではなくIdentityUserを使っていました。 –

+0

カスタムアイデンティティクラスの作成に関する追加情報があるため、答えをマークした後でも私は投票しました。再度、感謝します。 –