多次指定列名称 EF Code First 迁移

问题描述 投票:0回答:1

我在表中有两列,我使用代码优先方法创建了它们,然后我在 C# 模型而不是实际数据库中更改了它们的数据类型,最后我尝试了稍后的迁移以更改它们在数据库中的数据类型

public partial class PriceAndMargin : DbMigration
{
    public override void Up()
    {
        AddColumn("dbo.Items", "Price", c => c.Int(nullable: false));
        AddColumn("dbo.Items", "ShortageMargin", c => c.Int(nullable: false));
    }
    
    public override void Down()
    {
        DropColumn("dbo.Items", "ShortageMargin");
        DropColumn("dbo.Items", "Price");
    }
}

如果我做对了,这段代码应该删除 Price 列和 ShortageMargin 列并重新创建它们 但它却在控制台中为我显示此消息

每个表中的列名必须是唯一的。表“dbo.Items”中的列名“Price”被指定多次

提前致谢

c# sql-server entity-framework
1个回答
2
投票

如果我得到它,编写此代码应该删除 Price 列和 ShortageMargin 列并重新创建它们

不是真的,你的“向上”添加了列。仅当您想要“降级”数据库(或恢复迁移)时,才需要使用“down”部分。 我不知道您如何更改对象的类型,以及您从哪个版本运行“add-migration”命令,但您应该有一个带有“AlterColumn”而不是AddColumn

的脚本
© www.soinside.com 2019 - 2024. All rights reserved.