【问题标题】:There is already an object named 'AspNetUsers' in the database数据库中已经有一个名为“AspNetUsers”的对象
【发布时间】:2016-04-08 22:50:24
【问题描述】:

我在整个互联网上搜索过,堆栈溢出,但我迷失在实体框架迁移的奥秘中。

我有现有的数据库。我添加了三个与 AspNetUsers 表有一定关系的新表。

我尝试了两种使用 pmc 将这些表添加到数据库的方法。 先注释掉dbcontext中的所有新表,然后使用以下命令。

Add-migration initial -ignorechanges

然后从 dbcontext 中取消注释表并运行 update-database 命令。结果没有添加新表。

然后我删除迁移历史表中的所有条目并删除迁移文件夹并从头开始。

  enable-migrations -EnableAutomaticMigrations
  Add-migration bcvn
  update-database -verbose

现在,当我运行更新数据库时,它说数据库中已经有一个名为“AspNetUsers”的对象。发现这篇文章很有帮助,但在我的情况下,AspNetUsers 表在 up 方法中没有发生任何变化,所以我可以关注这篇文章http://blog.rajsoftware.com/2014/07/12/entity-framework-code-first-automatic-migration-existing-tables/请有人救救我。也许我会收到很多反对票。但我不在乎我想要解决方案。

【问题讨论】:

    标签: asp.net-mvc entity-framework asp.net-identity entity-framework-migrations


    【解决方案1】:

    搞定了。诀窍是注释掉与新表相关的所有代码,尤其是我之前没有对 ApplicationUser 类执行的关系相关代码

    Add-migration initial -ignorechanges
    

    然后取消注释所有代码,然后

    update-database -verbose
    

    我之前唯一没有做的就是像这样注释掉关系--

    //  public virtual Notification Notifications { get; set; }
    

    在通知表中

    //  public virtual ApplicationUser ApplicationUser { get; set; } 
    

    可能对某人也有帮助。

    【讨论】:

      猜你喜欢
      • 2019-05-12
      • 2011-03-29
      • 2014-08-01
      • 2010-11-12
      • 2021-05-10
      • 2013-10-21
      • 1970-01-01
      • 2020-10-19
      • 2016-06-22
      相关资源
      最近更新 更多