【问题标题】:Asp.net identity extra user information like email etcAsp.net 身份额外的用户信息,如电子邮件等
【发布时间】:2013-12-21 23:28:39
【问题描述】:

我正在使用新的 ASP.NET 标识。我添加了一些额外的用户信息,如电子邮件、移动设备等,但在创建用户时我收到以下异常:

执行命令定义时出错。有关详细信息,请参阅内部异常。

内部异常:

{"无效的列名'Discriminator'。\r\n无效的列名'FirstName'。\r\n无效的列名'LastName'。\r\n无效的列名'DateOfBirth'。\r\n无效的列名'Age '。\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);
    }
}

我做错了什么??

【问题讨论】:

  • 检查您的值插入到哪个表中,它与您的通行证值匹配
  • 你的视图模型是什么样的?错误在哪里抛出?什么时候?

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


【解决方案1】:

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

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

  • 添加迁移
  • 更新数据库

还要确保在开始时提供适当的数据库迁移策略。例如,

Database.SetInitializer&lt;ApplicationDbContext&gt;(new System.Data.Entity.MigrateDatabaseToLatestVersion&lt;ApplicationDbContext, Configuration&gt;());

【讨论】:

    猜你喜欢
    • 2017-02-21
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多