gpt4 book ai didi

sql - Entity Framework Core 是否会在重命名模型属性时删除旧列?

转载 作者:行者123 更新时间:2023-12-02 19:56:00 25 4
gpt4 key购买 nike

第一个问题:在 Entity Framework Core (EF Core) 中,如果重命名模型中的属性,EF 是否会删除数据库中的旧列?或者 EF 是否只是使用新名称创建一个新列,而保留旧列?

第二个问题:如果 EF Core 确实删除了旧列,如果存在即将被删除的现有数据,它会警告您吗?

最佳答案

简短的回答是 - 不。它不会删除该列。

为了验证,我创建了一个名为 Book 的模型。

public class Book
{
public int BookId { get; set; }
public string Name { get; set; }
}

我添加了迁移并更新了数据库。然后我在表中添加了几条记录。

然后,我将模型中的 Name 属性更改为 Description

当我添加另一个迁移时,以下是 Up 方法中的相关代码。

 migrationBuilder.RenameColumn(
name: "Name",
table: "Books",
newName: "Description");

这被翻译成以下 TSQL

 EXEC sp_rename N'[Books].[Name]', N'Description', N'COLUMN';

所以 - 它不会删除和添加,它只是重命名现有列。

再次更新数据库后,我的记录仍然存在,其中包含我在列为 Name 时插入的值。

关于sql - Entity Framework Core 是否会在重命名模型属性时删除旧列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57014636/

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