我正在尝试用MySql数据库实现ASP.NET标识。在遇到一些困难之后,我更新了它,这似乎与我正在使用的身份版本有关,现在我遇到了不同的错误。
最初它声明它找不到XXX.aspnetusers表,我发现应该添加以下代码来将其映射到MySql数据库中创建表的方式。

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<ApplicationUser>().ToTable("my_aspnet_users");
}

既然修正了错误,现在我面临这个问题:
mysql - “字段列表”中的未知列“Extent1.Email”-LMLPHP
查看数据库,我可以看到Email字段确实没有创建,我想知道为什么没有添加所有的IdentityUser字段?

最佳答案

您必须映射每个属性,如下所示。

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<ApplicationUser>().ToTable("my_aspnet_users");
    modelBuilder.Entity<ApplicationUser>().Property(t => t.Email).HasColumnName("Email");
    //map other properties too
}

10-07 16:10