我可以重命名我整个项目的命名空间(当然包括:DbContext 类、迁移配置类等)而不破坏任何东西或不必重新创建我的所有迁移?
比如说,我有 Project MyProject,命名空间是
Foo.MyProject
我的配置类在
Foo.MyProject.Migrations
假设我想为 Bar 重命名 Foo 命名空间,当然我的 Configurations 命名空间现在将是
Bar.MyProject.Configurations
是否有任何正确的方法可以做到这一点并保持我当前的所有迁移仍然有效? 这些方法是否涉及手动编辑 ___MigrationHistory 表或其他内容? (我一眼就看到了 ContextKey 列,我怀疑我应该手动编辑它。)
最佳答案
是的,您确实需要更新 __MigrationHistory 表中的 ContextKey。代码:
UPDATE [dbo].[__MigrationHistory]
SET [ContextKey] = 'New_Namespace.Migrations.Configuration'
WHERE [ContextKey] = 'Old_Namespace.Migrations.Configuration'
有关使用 EF6 重命名命名空间主题的好读物:
关于c# - EF6 : Renaming namespace using Code First Migrations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31547450/