Entity framework 更新数据库表&;柱

Entity framework 更新数据库表&;柱,entity-framework,asp.net-mvc-4,Entity Framework,Asp.net Mvc 4,首先使用MVC4和EF代码 我重命名了我的表/列名,即表:在模型和代码中以及运行迁移语句时,从一个类别重命名为另一个类别 Update-Database -Verbose -Force 我得到一个错误: CREATE UNIQUE INDEX语句终止,因为为对象名“dbo.Categories”和索引名“PK_dbo.Categories”找到了重复的键。重复的键值为()。无法创建约束。请参阅前面的错误。声明已终止 在配置文件中,我有AutomaticMigrationsEnabled=tru

首先使用MVC4和EF代码

我重命名了我的表/列名,即表:在模型和代码中以及运行迁移语句时,从一个类别重命名为另一个类别

Update-Database -Verbose -Force
我得到一个错误:

CREATE UNIQUE INDEX语句终止,因为为对象名“dbo.Categories”和索引名“PK_dbo.Categories”找到了重复的键。重复的键值为()。无法创建约束。请参阅前面的错误。声明已终止

在配置文件中,我有
AutomaticMigrationsEnabled=true


是否需要执行其他操作才能使更改应用于数据库?

您无法修改PK

1-删除现有数据库,然后运行更新数据库

2-通过运行
更新数据库-script
生成更新脚本,并将drop index TSQL添加到生成的文件中,然后运行脚本


3-通过Visual Studio或Management Studio从表中删除键约束,然后删除TSQL以在生成的脚本中删除索引,然后运行脚本。

是否也重命名了PK?是的,我已重命名。还有什么需要检查的吗?我已经编辑了你的标题。请看“”,其中的共识是“不,他们不应该”。我不想删除数据库。表中已经有数据了。没有办法重命名它吗?当我尝试生成脚本“PM>更新数据库-脚本-强制”->错误:用户已取消保存对话框(HRESULT中的异常:0x8004000C(OLE_E_PROMPTSAVECANCELLED))1-备份数据库2-在新数据库上还原3-删除数据库4-运行
更新数据库
5-将数据从备份表插入EF生成的数据库表