我在互联网上搜索过,堆栈溢出但是我对实体框架迁移的神秘感到迷茫。
我有现有的数据库。我添加了三个与AspNetUsers表有一定关系的新表。
我尝试了两种使用pmc将这些表添加到数据库的方法。 首先注释掉dbcontext中的所有新表,然后使用以下命令。
Add-migration initial -ignorechanges
然后从dbcontext取消注释表并运行update-database命令。结果没有添加新表。
然后我删除迁移历史记录表中的所有条目并删除迁移文件夹并从头开始。
enable-migrations -EnableAutomaticMigrations
Add-migration bcvn
update-database -verbose
现在,当我运行更新数据库时,它说已经存在一个名为' AspNetUsers'在数据库中。发现这篇文章是有帮助的,但在我的情况下,在up方法中没有对AspNetUsers表进行任何更改,所以我可以按照这篇文章http://blog.rajsoftware.com/2014/07/12/entity-framework-code-first-automatic-migration-existing-tables/请有人救我。也许我会收到许多downvote。但是我不在乎我想要解决方案。
答案 0 :(得分:0)
搞定了。 Trick是要注释掉所有与新表相关的代码,特别是关系相关代码,我之前没有做过ApplicationUser类,然后
Add-migration initial -ignorechanges
然后取消注释所有代码然后
update-database -verbose
我之前没有做过的唯一事情是评论这样的关系 -
// public virtual Notification Notifications { get; set; }
和通知表
// public virtual ApplicationUser ApplicationUser { get; set; }
也可能对某人有帮助。