首先,IdentityModels.cs看起来像这样: 使用Microsoft.AspNet.Identity.EntityFramework;
namespace WebApplication2.Models
{
public class ApplicationUser : IdentityUser
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
}
}
我将此文件更改为:
namespace WebApplication2.Models
{
public class ApplicationUser : IdentityUser
{
public string Email { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
Database.SetInitializer<ApplicationDbContext>(new DropCreateDatabaseAlways<ApplicationDbContext>());
}
}
}
我还在AccountViewModel.cs中添加了Email到RegisterViewModel。
我还将AccountController更改为:
var user = new ApplicationUser() { UserName = model.UserName, Email = model.Email};
var result = await UserManager.CreateAsync(user, model.Password);
当我点击注册时,它在此行失败:
var result = await UserManager.CreateAsync(user, model.Password);
这样说:
System.Data.SqlClient.SqlException:无效的列名称'Email'。 为什么我收到此错误?我错过了什么?感谢。
答案 0 :(得分:3)
打开nuget控制台并输入:
update-database -force
之前确保您已启用自动迁移。 你可以通过
打开它enable-migrations