在Identity Framework中添加新属性

时间:2015-11-28 11:49:44

标签: c# entity-framework asp.net-identity asp.net-identity-2

首先,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'。   为什么我收到此错误?我错过了什么?感谢。

1 个答案:

答案 0 :(得分:3)

打开nuget控制台并输入:

update-database -force

之前确保您已启用自动迁移。 你可以通过

打开它
enable-migrations