我可以重命名整个Project的命名空间(当然包括:DbContext类,迁移配置类等),而不会破坏任何内容或不得不重新创建我的所有迁移?
说,我有Project MyProject,哪个命名空间是
Foo.MyProject
我的配置类在
中Foo.MyProject.Migrations
我想要为 Bar 重命名 Foo 命名空间,当然我的配置命名空间现在将是
Bar.MyProject.Configurations
有没有正确的方法来保持我目前的所有迁移仍然有效? 这些方法是否涉及手动编辑___MigrationHistory表或其他什么? (一眼就能看到ContextKey列,我怀疑我应该手动编辑。)
答案 0 :(得分:15)
是的,您确实需要更新_MigrationHistory表中的ContextKey。代码:
UPDATE [dbo].[__MigrationHistory]
SET [ContextKey] = 'New_Namespace.Migrations.Configuration'
WHERE [ContextKey] = 'Old_Namespace.Migrations.Configuration'
关于使用EF6重命名命名空间主题的一个很好的阅读: