如何更改asp.net identity 3(vnext)使用的表名?

时间:2015-12-30 04:50:05

标签: asp.net asp.net-identity asp.net-identity-3

asp.net identity 2中用于更改身份表名称的方法在asp.net identity 3中不起作用。

2 个答案:

答案 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");                        
        }
    }