请帮我解决ef6迁移中的一个不便。我经常更改我的模型(因为我对模式没有完全的理解)。我有两个迁移: 1. Initial (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迁移的情况下重新搭建初始迁移的脚手架?
另外,我为英语感到抱歉。
发布于 2017-09-29 15:16:13
您只能重新搭建最新的迁移。在Initial迁移之后,您应该删除迁移,将您手动添加的代码保留在某个位置。然后重新搭建脚手架,然后重新添加您的手动代码。
发布于 2018-02-16 04:13:11
从技术上讲,您可以将seed方法与Raw SQL结合使用,以应用任何附加的模式更改。你必须设置原始SQL来做一个“检查”,以确保它的更改在运行之前还没有被应用,因为seed方法在应用程序每次启动时都会运行。
一旦你的模型变化是稳定的,可能最好将它转移到它自己的迁移中,但如果你在开发过程中有大量的迁移变化,这是一个可行的替代方案。
https://stackoverflow.com/questions/46483525
复制相似问题