【发布时间】:2016-04-08 09:31:01
【问题描述】:
我在一个表中有两列,我使用代码优先方法创建了它们,然后我在 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' 被多次指定
提前感谢
【问题讨论】:
-
描述您的整个工作流程。您是自己将价格列添加到表中,还是在之前的迁移中添加?
-
不,我使用了上面的迁移@CodeCaster
-
您走的步骤不清楚,代码与您的描述不符。您显示的迁移添加了两列。其中一列已存在。
-
我在上面写道,这两个列已经存在,但是具有不同的数据类型,我使用代码优先方法创建了它们,然后我在 C# 模型中更改了它们的数据类型,而不是实际的数据库,最后我尝试在上面迁移为了改变他们在数据库中的数据类型@CodeCaster
-
DropColumn 不应该解决这个问题@marc_s
标签: c# sql-server entity-framework