小编Cat*_*sim的帖子

使用Code First重命名EF中的列

我在班上改名了。看起来像这样。

public class clsClassForStackoverflow
{
   [Column(TypeName = "varchar"), StringLength(150)]
   public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

由于结构上的更改,我不得不将其重命名。因此,我删除了该行并添加了新属性。之后,我创建了一个新的迁移文件来准备数据库更新,他想在该文件中删除旧列并添加新列。好吧,因为数据库中仍然有数据,所以将其更改为重命名。一滴一滴,它将消失。

新的迁移文件:

public partial class _100126_2 : DbMigration
{
    public override void Up()
    {
        RenameColumn("dbo.tbClassForStackoverflow", "ClassForStackoverflow_Name",   "ClassForStackoverflow_NewName");
    }

    public override void Down()
    {
        RenameColumn("dbo.tbClassForStackoverflow", "ClassForStackoverflow_NewName", "ClassForStackoverflow_Name");
    }
}
Run Code Online (Sandbox Code Playgroud)

启动数据库更新后,我查看了我的课程,并且属性没有改变。它仍然命名为“名称”,而不是“ NewName”。在没有让EF认为自己删除并添加一列的情况下,我该如何更改?

c# entity-framework sql-server-2012 ef-migrations

2
推荐指数
1
解决办法
3828
查看次数