如何在Entity Framework Core中重命名迁移

7
我该如何更改旧迁移的名称(重命名)?它与我的自定义身份用户的名称冲突。
改变身份用户会更容易吗?我也不知道如何重命名,所有的教程都是为了简单起见而创建一个新的数据库(关于此方面的任何信息都将受到赞赏)。
只需在以下位置进行重命名吗?
- 它的迁移 .cs 文件 - 数据库迁移表 - 快照
就这样吗?你有没有想法这是否会搞砸事情?
2个回答

8
如果只是类名冲突,只需重命名类即可。
如果你真的想要重命名整个迁移,你的步骤看起来是正确的。确保你检查 *.Designer.cs 文件以重命名包含名称的字符串字面量。

正如JakeMc所提到的那样,仅仅重命名是不够的。可能还需要对原名称的引用进行重命名。 - Mpacheco

3

针对实际问题的直接回答是:这并不像简单地重命名迁移文件那样简单,特别是如果该迁移已经传输到客户端数据库。

我发现即使在重命名迁移文件、设计文件和类名之后,EF仍然会在__EFMigrationsHistory表中插入旧名称,因为它仍然记得旧迁移的名称。

对我来说,更容易的方法是将Up和Down方法中的所有代码复制到记事本中,使用remove-migration删除错误命名的迁移,然后使用add-migration添加一个新的迁移,将记事本中保存的代码复制回去。但是,这仅适用于最新的迁移。

如果它是旧的迁移之一,已经传输到客户端数据库或被其他迁移所取代,那么您将不得不考虑如何手动更新__EFMigrationsHistory表以及EF对迁移名称的记忆,这可能会变得非常棘手。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接