c# - EF6 : Renaming namespace using Code First Migrations

标签 c# entity-framework namespaces entity-framework-migrations

我可以重命名我整个项目的命名空间(当然包括: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 重命名命名空间主题的好读物:

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

关于c# - EF6 : Renaming namespace using Code First Migrations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31547450/

相关文章:

c# - 带有用户名和密码的 HTTP GET 请求

c# - EF 查询只读 Iqueryable

sql-server - 使用 Entity Framework 发布 Web API 时出错

python - 使用 plac 时出现属性错误 : 'Namespace' object has no attribute

c# - 无法使用 jQuery ajax 调用页面方法

c# - 队列中未处理的项目修改数据库状态 - 如何处理并发数据请求?

entity-framework - MVC中@Html.DisplayFor()只显示日期

namespaces - 如何获取 MediaWiki namespace 列表?

Python:有没有办法在函数定义中使用 "unimported"对象?

c# - 如何从另一个桌面应用程序控制 Windows 服务