编程语言
首页 > 编程语言> > c#-使用Entity Framework Core 2.0更改或重命名列名而不会丢失数据

c#-使用Entity Framework Core 2.0更改或重命名列名而不会丢失数据

作者:互联网

我意识到自己拼写的列标题中的一个不正确,因此我在模型中进行了更改,并创建了一个新迁移以将其更新到数据库中.在我意识到实际上似乎发生的事情是新的列替换了现有的列并擦除了所有数据之前,所有方法都运行良好.碰巧的是,由于这是一个教程数据库,将数据放回原处就没什么大不了,只需花费几分钟.

如何/如何更新/重命名列而不丢失其中的数据?

不知道这是怎么出现在我的搜索中的,但是这是直接相关的帖子:
Rename table field without losing data, using automatic migrations

解决方法:

EF Core通过将您的模型与当前数据库快照(c#类)进行比较来创建其迁移.然后,它使用它来创建一个您可以查看的迁移文件.如果EF Core不能始终知道您是替换此列还是创建新列.当您检查迁移文件时,请确保没有任何列删除,索引删除(与该列相关)等.您可以将所有这些替换为以下内容:

migrationBuilder.RenameColumn(
    name: "ColumnA",
    table: "MyTable",
    newName: "ColumnB");

标签:net-core,ef-migrations,c,entity-framework
来源: https://codeday.me/bug/20191109/2011222.html