假设我总共进行了3次迁移:A,B和C。所有迁移都内置于代码中,并从代码中执行(我指的是C#)。
我想将所有迁移应用到给定级别(例如B),让我回头控制,因此我可以在EF / migrations / etc范围之外做任何我想做的事情。当我完成自己的工作后,然后执行完全迁移(因此在这种情况下,它意味着C)。
我知道如何从代码中进行完全迁移:-),但是如何告诉EF迁移到给定级别?
在这里,从代码(C#)中执行所有操作至关重要-SQL脚本或运行外部工具对我来说都是行不通的。
对于好奇的人:用例-我想为之间的最后一次迁移准备测试。
根据EF-Core文档,您应该可以运行:
dotnet ef database update Migration_Name
将数据库更新为一定迁移。
从代码运行有点不同。您可以context.Database.Migrate()
用来应用所有待处理的迁移。查看此方法的源代码,我们可以看到它正在使用基础IMigrate
服务。我想你可以尝试这样的事情:
_context.Database.GetService<IMigrator>().Migrate("Migration_Name");
这应该与我之前提到的cli命令相同。我目前没有快速的方法来测试它,因此它可能无法正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句