asp.net identity 2中用于更改身份表名称的方法在asp.net identity 3中不起作用。
答案 0 :(得分:4)
您可以通过ToTable("TableName")
的{{1}}上的扩展程序OnModelCreating
更改实体映射,轻松完成此操作:
并且您不需要使用DbContext
,只需.ForSqlServerToTable()
就可以在任何数据库中使用。
.ToTable()
这里唯一的问题是记住使用带有标识符类型的泛型(字符串是AspNetCore上的默认值。
答案 1 :(得分:3)
使用ForSqlServerToTable扩展方法修改ApplicationDbContext的OnModelCreating中的构建器实体,以更改所需的表名。
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");
}
}