我正在尝试用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");
}
既然修正了错误,现在我面临这个问题:
查看数据库,我可以看到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
}