update-database -force 命令未更新 entity framework 代码中的基础 -first

update-database -force command is not updating the base in entity framework code -first

这个问题可能是重复的。但这是我在使用命令时遇到的问题。

如果我运行这个命令,

update-database -force

我得到的第一个错误..

There is already an object named tblAbc in the database

然后我用谷歌搜索,每次我得到一个 Whosebug link 向 运行 提出建议 添加迁移初始 -IgnoreChanges

如果我 运行 这个命令然后 运行 更新命令,没有错误 - 运行 种子方法

But it doesn't sync the database with the new updates

然后我尝试了很多次,但都遇到了同样的问题,因此我寻找了一些替代解决方案并找到了。

使用 update-database -Script 但是如果我 运行 这个命令并得到以下错误。

User canceld Save dialog box

然后我尝试通过打开 SQL Managment Studio 和

来解决这个问题

Tools>>Options>>designers>> unchecked the Prevent saving changes that required table recreation

但是之后同样的错误信息。

然后我尝试在我的上下文中添加以下配置 class

System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion  <context, Configuration>());

它 运行 成功并且 运行 种子方法,但它不同步最新更新。

使用现有数据库

根据您的上下文状态,您需要执行以下操作之一...

如果您的数据库上下文仅包含您现有的表并且没有自定义更改,请执行以下操作

Add-Migration Initial -IgnoreChanges

这将创建一个空白迁移脚本

update-database

这会将数据库更新到此迁移,但不会应用任何更改。您现在可以将更改添加到数据库上下文。完成后执行以下操作

Add-Migration Custom

这将生成一个迁移脚本,其中包含您的更改。然后再次更新您的数据库。

update-database

如果您的数据库上下文包含您现有的表以及您的自定义更改

Add-migration Initial

这会生成一个迁移脚本。通过迁移脚本并删除 UP 和 DOWN 方法中对现有表的任何引用。您将得到一个仅包含您的自定义逻辑的脚本。

update-database

希望对您有所帮助!

使用类型、大小和最大长度更新迁移文件。

示例: 最大长度:50, 输入:“varchar(50)”,

属性: