EF6重新支架初始迁移

时间:2017-09-29 07:07:05

标签: c# entity-framework-6 npgsql

请帮助我解决ef6迁移带来的一些不便。 我经常更改我的模型(因为我没有完全理解模式)。 我有两个迁移: 1.初始(ef6通过我的模型生成此迁移) 2. AddtionalInit(初始化后需要执行的一些手动sql代码)

当我更改模型时,我想重新构建初始迁移以应用更改。我迁移到-TargetMigration:0并尝试执行:

add-migration Initial -force

但是它会抛出错误

Unable to generate an explicit migration because the following explicit migrations are pending: [201709290630180_Initial, 201709290631135_AdditionalInit]. Apply the pending explicit migrations before attempting to generate a new explicit migration

我可以在不删除AdditionalInit迁移的情况下重新构建初始迁移吗?

P.S。对不起英文。

2 个答案:

答案 0 :(得分:0)

您只能重新构建最新的迁移。 您应该在Initial迁移后删除迁移,并保留手动添加的代码。然后重新进行脚手架,然后重新添加手动代码。

答案 1 :(得分:0)

从技术上讲,您可以将种子方法与Raw SQL一起使用以应用任何其他架构更改。您必须设置Raw SQL以进行“检查”以确保在运行之前尚未应用更改,因为每次应用程序启动时都会运行种子方法。

一旦模型更改稳定,可能最好将其移植到自己的迁移中,但如果在开发过程中有大量迁移更改,则可以使用此替代方法。