我正在使用新的ASP.NET身份。我添加了一些额外的用户信息,如电子邮件,移动设备等,但在用户创建时,我收到以下异常:
执行命令定义时发生错误。有关详细信息,请参阅内部异常。
内部异常:
{“无效的列名'Discriminator'。\ r \ n无效的列名'FirstName'。\ r \ n无效的列名'LastName'。\ r \ n无效的列名'DateOfBirth'。\ r \ n无效的列名'年龄'。\ r \ n无效的列名称'Mobile'。“}
代码:
AccountController
var user = new ApplicationUser()
{
UserName = model.Email,
DateOfBirth = model.DateOfBirth,
FirstName = model.FirstName,
LastName = model.LastName,
Mobile = model.Mobile,
Age = model.Age
};
var result = UserManager.Create(user, model.Password); //exception
Model
:
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
public int Age { get; set; }
public string Mobile { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{ }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ApplicationUser>().Property(p => p.DateOfBirth).HasColumnType("datetime2");
base.OnModelCreating(modelBuilder);
}
}
我做错了什么?
答案 0 :(得分:1)
显示代码模型和数据库中的不匹配。
验证您是否在运行应用程序之前迁移了更改。适当地使用以下命令。
还要确保在开始时提供适当的DatabaseMigration策略。例如,
Database.SetInitializer<ApplicationDbContext>(new System.Data.Entity.MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());