Asp.net识别电子邮件等额外的用户信息

时间:2013-12-05 06:24:34

标签: c# asp.net-mvc asp.net-identity

我正在使用新的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);
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

显示代码模型和数据库中的不匹配。

验证您是否在运行应用程序之前迁移了更改。适当地使用以下命令。

  • 添加-迁移
  • 更新的数据库的

还要确保在开始时提供适当的DatabaseMigration策略。例如,

Database.SetInitializer<ApplicationDbContext>(new System.Data.Entity.MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());

相关问题