Метод, используемый в идентификаторе asp.net 2 для изменения имен таблиц идентификаторов, не работает в идентификаторе asp.net 3.
Как изменить имена таблиц, используемые идентификатором asp.net 3 (vnext)?
Ответ 1
Вы можете сделать это легко, изменив сопоставление сущностей с методом расширения ToTable("TableName")
на OnModelCreating
вашего DbContext
:
И вам не нужно использовать .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.
Ответ 2
Измените объекты компоновщика в OnModelCreating вашего ApplicationDbContext, используя метод расширения ForSqlServerToTable, чтобы изменить имя нужной таблицы.
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");
}
}