asp.net标识给我的标识表起了一个错误的名称

cedebl8k  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(292)

我有一个mysql数据库托管在azure上,我的计算机上有mvc应用程序。我想使用identity框架来跟踪我的用户。在我的数据库中生成了标识表,但它们都有错误的名称:

因为当我想在我的注册页面上添加一个新用户时,会出现以下错误:
表xx.aspnetusers不存在。
我知道这是因为我的表名错了。但是我不知道为什么表被添加为my\u aspnet\u users而不是aspnetusers。
我遵循这篇文章作为指导:https://www.codeproject.com/tips/788357/how-to-set-up-application-using-asp-net-identity-w
我还尝试编辑我的applicationdbcontext:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{

    public ApplicationDbContext()
        : base("WebShopDatabaseContext")
    {
        Database.SetInitializer(new MySqlInitializer());
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
    protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<IdentityUser>().ToTable("aspnetusers");
        modelBuilder.Entity<ApplicationUser>().ToTable("aspnetusers");
        modelBuilder.Entity<IdentityUserRole>().ToTable("aspnetuserroles");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("aspnetuserlogins");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("aspnetuserclaims");
        modelBuilder.Entity<IdentityRole>().ToTable("aspnetroles");
    }
}
0ve6wy6x

0ve6wy6x1#

我不想弄明白为什么你的表名是这样的,
但是你可以配置你的 DbContext 使用实际的,如下所示。
对每个表执行相同的操作。

modelBuilder.Entity<IdentityUser>().ToTable("my_aspnet_users");

相关问题