gpt4 book ai didi

c# - 使用 Entity Framework Core 2.0 在不丢失数据的情况下更改或重命名列名

转载 作者:太空狗 更新时间:2023-10-30 01:00:01 25 4
gpt4 key购买 nike

我意识到我拼错了一个列标题,所以我在模型中更改了它并创建了一个新的迁移以将其更新到数据库中。一切都很完美,直到我意识到实际发生的事情是一个新列取代了现有列并删除了所有数据。碰巧的是,由于这是一个教程数据库,所以恢复数据没什么大不了的,只需几分钟的工作。

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

不确定我的搜索结果为何没有出现,但这是一篇直接相关的帖子: Rename table field without losing data, using automatic migrations

最佳答案

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

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

关于c# - 使用 Entity Framework Core 2.0 在不丢失数据的情况下更改或重命名列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50178413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com