我在表中有两列,我使用代码优先方法创建了它们,然后我在 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”被指定多次
提前致谢
如果我得到它,编写此代码应该删除 Price 列和 ShortageMargin 列并重新创建它们
不是真的,你的“向上”添加了列。仅当您想要“降级”数据库(或恢复迁移)时,才需要使用“down”部分。 我不知道您如何更改对象的类型,以及您从哪个版本运行“add-migration”命令,但您应该有一个带有“AlterColumn”而不是AddColumn
的脚本