请帮助我解决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。对不起英文。
答案 0 :(得分:0)
您只能重新构建最新的迁移。
您应该在Initial
迁移后删除迁移,并保留手动添加的代码。然后重新进行脚手架,然后重新添加手动代码。
答案 1 :(得分:0)
从技术上讲,您可以将种子方法与Raw SQL一起使用以应用任何其他架构更改。您必须设置Raw SQL以进行“检查”以确保在运行之前尚未应用更改,因为每次应用程序启动时都会运行种子方法。
一旦模型更改稳定,可能最好将其移植到自己的迁移中,但如果在开发过程中有大量迁移更改,则可以使用此替代方法。