2015-12-30 8 views

答えて

3

では動作しません。 (s)name。

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
    { 
     protected override void OnModelCreating(ModelBuilder builder) 
     { 
      base.OnModelCreating(builder); 
      // Customize the ASP.NET Identity model and override the defaults if needed. 
      // For example, you can rename the ASP.NET Identity table names and more. 
      // Add your customizations after calling base.OnModelCreating(builder); 

      builder.Entity<ApplicationUser>().ForSqlServerToTable("Users"); 
      builder.Entity<IdentityUserRole<string>>().ForSqlServerToTable("UserRoles"); 
      builder.Entity<IdentityUserLogin<string>>().ForSqlServerToTable("UserLogins"); 
      builder.Entity<IdentityUserClaim<string>>().ForSqlServerToTable("UserClaims"); 
      builder.Entity<IdentityRole>().ForSqlServerToTable("Roles");       
     } 
    } 
+0

は、昔ながらの 'ToTable'の代わりに、' ForSqlServerToTable'と私のために働きました。(私はドットネットコアサンプルプロジェクトでasp.netコアアイデンティティを使用していましたが、あなたを助けないかもしれません) – Terminus

4

あなたのDbContextOnModelCreatingに拡張メソッドToTable("TableName")を持つエンティティのマッピングを変更することで簡単に行うことができます。

そして、あなたは.ForSqlServerToTable()を使用する必要はありません、ただ.ToTable()は、任意のデータベースで動作するはずです。

protected override void OnModelCreating(ModelBuilder builder) 
{ 
    base.OnModelCreating(builder); 

    builder.Entity<User>().ToTable("Users"); // Your custom IdentityUser class 
    builder.Entity<IdentityUserLogin<string>>().ToTable("UserLogins"); 
    builder.Entity<IdentityUserToken<string>>().ToTable("UserTokens"); 
    builder.Entity<IdentityUserClaim<string>>().ToTable("UserClaims"); 
    builder.Entity<IdentityUserRole<string>>().ToTable("UserRoles"); 
    builder.Entity<IdentityRoleClaim<string>>().ToTable("RoleClaims"); 
    builder.Entity<IdentityRole>().ToTable("Roles");    
} 

ここでの唯一の難点は、文字列がAspNetCore上のデフォルトです(あなたの識別子のタイプのジェネリックを使用することを忘れないことです。

関連する問題