可能这个问题似乎重复了。但这是我面对命令的问题。
如果我运行此命令,
update-database -force
我得到的第一个错误..
数据库中已有一个名为tblAbc的对象
然后我用谷歌搜索,每次我得到一个stackoverflow链接建议运行 添加迁移初始--IgnoreChanges
如果我运行此命令然后运行更新命令,则无错误 - 正在运行种子方法
但它没有将数据库与新更新同步
然后我尝试了多次但同样的问题,因此我寻找了一些替代解决方案&我知道了。
使用update-database -Script但如果我运行此命令并收到以下错误。
用户癌症保存对话框
然后我尝试通过打开SQL Managment Studio和
来解决这个问题工具>>选项>>设计师>>取消选中“禁止保存需要表重新创建的更改”
但在此之后也会出现同样的错误信息。
然后我尝试在我的上下文类
中添加以下配置System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion <context, Configuration>());
它运行成功并运行种子方法,但它没有同步最新的更新。
答案 0 :(得分:5)
使用现有数据库
根据您的上下文状态,您需要以下其中一项...
如果您的数据库背景仅包含您现有的表格而且以后没有任何自定义更改
Add-Migration Initial -IgnoreChanges
这将创建一个空白的迁移脚本
update-database
这会将数据库更新为此迁移,但不会应用任何更改。您现在可以将更改添加到数据库上下文中。完成后,请执行以下操作
Add-Migration Custom
这将生成一个包含您的更改的迁移脚本。然后再次更新您的数据库。
update-database
如果您的数据库背景包含您现有的表格并且您的自定义更改
Add-migration Initial
这会生成一个迁移脚本。浏览迁移脚本并删除UP和DOWN方法中对现有表的任何引用。您将留下一个仅包含您的自定义逻辑的脚本。
update-database
希望这有帮助!