如何在实体框架核心中重命名迁移

时间:2017-05-26 11:28:04

标签: entity-framework entity-framework-core

如何更改旧迁移的名称(重命名)?它与我的自定义标识用户的名称冲突。

更改身份用户会更容易吗?我不知道如何重命名,每个教程都只是为了简单起见创建一个新的数据库(任何关于它的信息也很受欢迎)。

是否像在以下位置重命名一样简单:

  • 它的迁移.cs文件
  • 数据库迁移表
  • 快照
是吗?不知道这是否会搞砸了?

2 个答案:

答案 0 :(得分:1)

如果只是类名冲突,只需重命名该类就足够了。

如果确实想要重命名整个迁移,那么您的步骤看起来是正确的。确保检查*.Designer.cs文件以重命名包含名称的字符串文字。

答案 1 :(得分:0)

就我通过谷歌搜索来到这里以来对实际问题的直接回答:

这不是简单的重命名迁移文件的操作。尤其是如果迁移已经到客户端数据库。

我发现EF仍然记得某个旧迁移的名称,并且即使重命名了迁移文件,设计器文件和类名,最终仍将旧名称插入__EFMigrationsHistory表中。

对我来说,将Up和Down方法中的所有代码复制到记事本中比较容易,使用remove-migration删除错误命名的迁移,然后使用add-migration添加带有所需的名称,然后复制回我保存的记事本中的所有代码。但是,只有在迁移是最新的迁移时,这种方法才起作用。

如果是较旧的版本,已经在客户端数据库中使用,或者已被其他迁移取代,则您将不得不担心手动更新__EFMigrationsHistory表,以及EF迁移名称的存储位置,即可能会变得非常棘手。