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