1

我首先使用实体​​框架代码创建了一个 MVC 项目。该项目有一个相当大的数据库,并且正在生产中。现在,我正在添加一大组新功能,这些功能将使数据库的大小(表数)几乎翻倍。在我开发它时,我希望对 POCO 对象和 Fluent 模型构建逻辑进行大量调整。但是,我不想进行 100 次“迁移”,因为我做的改动很小。

如果我先做数据库,我会更改数据库并迭代地重新创建模型。完成后,我可以将最终模式与之前的模式进行比较并创建更改脚本。

我倾向于创建一个新的临时 DbContext 并为那里的新表开发我的 Code First 模型,在我迭代时从头开始重新创建一个新数据库。然后,当我拥有满意的模型时,将其移至主 DbContext 并创建一个大迁移。但这似乎很痛苦。它还存在一个问题,即新对象和现有对象之间存在一些需要放置到位的关系。

所以,我的具体问题是如何对 Code First 数据库进行许多小的更改:

  1. 无需重新创建现有数据库
  2. 并且没有为我要测试的每个更改创建(永久)迁移
4

1 回答 1

1

您说您使用 Code First 创建了项目,所以我假设您不需要对数据库进行逆向工程。

为避免重新创建现有数据库,请使用MigrateDatabaseToLatestVersion 数据库初始化程序

为避免为每次更改创建永久迁移,您可以回滚每个次要更改,然后强制迁移重新运行。

回滚:Update-Database -TargetMigration 0

要强制迁移重新运行:Add-Migration "OneMigrationToRuleThemAll" -Force

另一方面....

学会停止在小事上流汗涉及决定从事哪些事情以及忽略哪些事情

(理查德·卡尔森)

这些实体框架迁移技巧值得一读

于 2013-11-01T09:22:04.237 回答