列名称多次指定EF Code First Migration

时间:2016-04-08 09:31:01

标签: c# sql-server entity-framework

我在表中有两列,我使用代码第一种方法创建它们然后我在C#模型中更改了它们的数据类型而不是实际的数据库,最后我尝试了以后的迁移以便在数据库中更改它们的数据类型< / p>

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'中的列名“价格”被多次指定

提前致谢

1 个答案:

答案 0 :(得分:2)

  

如果我写了这个代码,应该删除Price列和ShortageMargin列并重新创建它们

不是,你的&#34; up&#34;添加列。 &#34; down&#34;部分仅在您希望降级&#34;您的数据库(ou还原迁移)。 我不知道您是如何更改对象类型的,以及您运行“添加 - 迁移”的版本。命令,但你应该有一个脚本用&#34; AlterColumn 而不是 AddColumn