2015-12-30 26 views

回答

3

工作修改您的ApplicationDbContext的OnModelCreating建設者實體,使用ForSqlServerToTable擴展方法來改變所需的表(s)的名字。

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

工作對我來說與普通的舊',而不是'ForSqlServerToTable' ToTable'。(雖然我使用dotnet核心示例項目的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。

相關問題