重命名ASP.Net Identity 2.0表:自创建数据库以来,上下文已发生更改

时间:2016-07-15 21:55:35

标签: c# asp.net-mvc asp.net-identity ef-database-first

我已经有了我的数据库,我需要使用ASP.Net Identity 2.0。所以我做了以下事情:

获取身份表的SQL脚本:

  • 使用身份验证个人帐户创建MVC项目
  • 然后,编写在默认连接
  • 下创建的数据库的脚本

然后,我将其与现有的数据库整合在一起:

  • 将脚本表插入SQL Server中的现有数据库 管理工作室。

在我生成My Identity Database之后,我开始在表格中添加必要的列" ASPNetUsers"通过使用EF Migrations for DB First。

  • 我使用Database First Approach创建了一个新的MVC项目
  • 现在,我在web.config
  • 中有2个连接字符串

因此,我的应用程序中的数据库中包含了我的数据库中的Asp.Identity表。

然后,我开始添加新属性:

  public class ApplicationUser : IdentityUser
{
    public string Name { get; set; }

    public virtual Region Region { get; set; }
}

添加每个属性后,我执行了迁移命令:Add-Migration和Update-Database。

然后,我尝试注册新用户,添加的列已填充,一切正常。

但是,我需要更改Table的名称,所以我使用了Fluent API:

  protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<ApplicationUser>().ToTable("Account");

    }

运行应用程序并尝试创建新用户时,它会出现以下错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

好像你还没有更新你的模型。 如果您使用的是Code First,请按照

上的说明进行操作

http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an-asp-net-mvc-application

基本上在包管理器控制台中执行这些命令:

  1. 启用的迁移

  2. add-migration InitialCreate

  3. 更新的数据库
  4. 如果您需要在首次迁移后进行更改,则应执行:

    1. 添加迁移

    2. update-database