【发布时间】:2015-11-28 20:05:54
【问题描述】:
首先,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 中向 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:列名“电子邮件”无效。 为什么我会收到此错误?我错过了什么?谢谢。
【问题讨论】:
-
您在进行更改后是否更新了数据库架构?似乎模型的更改没有反映在您的数据库中。
-
@PythaLye 我正在使用这个:
Database.SetInitializer<ApplicationDbContext>(new DropCreateDatabaseAlways<ApplicationDbContext>());所以,应该在我添加电子邮件后删除并创建数据库。
标签: c# entity-framework asp.net-identity asp.net-identity-2