gpt4 book ai didi

ef-code-first - MVC3 中的数据迁移(使用 EF.4.3)

转载 作者:行者123 更新时间:2023-12-01 15:28:56 25 4
gpt4 key购买 nike

我正在为我的项目做数据迁移。但是我有一个问题,例如:我有包含以下字段的 Book 表:

ID  Name   Color

1 Java red

2 MVC blue

3 .Net blue

我尝试使用 Code First 技术将字段名称从“Color”更改为“BookColor”。但迁移后表格如下所示:

ID  Name   BookColor

1 Java null

2 MVC null

3 .Net null

我丢失了字段值。如何确保所有值(value)都已转移?

我正在使用带有 MVC3 的 Entity Framework

编辑 这是我的 DBMigration 类:

public partial class AddCreative : DbMigration
{

public override void Up()
{
AddColumn("Authors", "Names", c => c.String(maxLength: 4000));
DropColumn("Authors", "Name");
}


public override void Down()
{
AddColumn("Authors", "Name", c => c.String(maxLength: 4000));
DropColumn("Authors", "Names");
}
}

更改后我已将 Name 更改为 Names(我在名称字段中丢失了数据)。

最佳答案

我使用以下没有问题:

首先,设置迁移:

PM> Enable-Migrations
PM> Add-Migration RenameBookColorColumn

然后我们设置迁移类来执行重命名:

public class RenameBookColorColumn : DbMigration
{
public override void Up()
{
this.RenameColumn("Books", "Color", "BookColor");
}
public override void Down()
{
this.RenameColumn("Books", "BookColor", "Color");
}
}

接下来,调用 Update-Database 以便我们执行更改:

PM> Update-Database -Verbose
Using NuGet project 'Example'.
Using StartUp project 'ExampleTest'.
Target database is: 'ExampleContext' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
Applying explicit migrations: [201207051400010_RenameBookColorColumn].
Applying explicit migration: 201207051400010_RenameBookColorColumn.
EXECUTE sp_rename @objname = N'Books.Color', @newname = N'BookColor',
@objtype = N'COLUMN' [Inserting migration history record]

瞧,它已重命名并保留了数据。

关于ef-code-first - MVC3 中的数据迁移(使用 EF.4.3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11344309/

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