EF6:使用Code First Migrations重命名命名空间

我可以重命名整个Project的命名空间(当然包括:DbContext类,迁移配置类等),而不会破坏任何内容或不得不重新创建我的所有迁移?

说,我有Project MyProject,命名空间是

Foo.MyProject 

我的配置类在

 Foo.MyProject.Migrations 

假设我想为Bar重命名Foo命名空间,当然我的配置命名空间现在将是

 Bar.MyProject.Configurations 

有没有正确的方法来保持我目前的所有迁移仍然有效? 这些方法是否涉及手动编辑___MigrationHistory表或其他什么? (一眼就能看到ContextKey列,我怀疑我应该手动编辑。)

是的,您确实需要更新_MigrationHistory表中的ContextKey。 码:

 UPDATE [dbo].[__MigrationHistory] SET [ContextKey] = 'New_Namespace.Migrations.Configuration' WHERE [ContextKey] = 'Old_Namespace.Migrations.Configuration' 

关于使用EF6重命名命名空间主题的一个很好的阅读:

http://jameschambers.com/2014/02/changing-the-namespace-with-entity-framework-6-0-code-first-databases/