我创建了一些新表,我注意到我没有使用好的命名约定的ID。无法更新数据库,因为实体无法删除约束
所以我做了一个新的add-migration
与新的ID,但是当我尝试update-database
我有以下错误:
“PK_dbo.DB_User_Type”是由表 “AspNetUsers”引用的约束,外键约束 'FK_dbo.AspNetUsers_dbo.DB_User_Type_DB_User_Type_Id'。无法下降 约束。查看以前的错误。
我不明白,因为脚本以删除所有约束开始。
有人可以解释一下如何解决这个错误吗?
我正在使用实体6.1的新方法code first from an existing database
。这里是Up
功能
public override void Up()
{
DropForeignKey("dbo.DB_Company_Profile", "DB_Category_Id", "dbo.DB_Category");
DropForeignKey("dbo.DB_Category_Translation", "DB_Category_Id", "dbo.DB_Category");
DropForeignKey("dbo.DB_User_Type_Translation", "DB_User_Type_Id", "dbo.DB_User_Type");
DropForeignKey("dbo.DB_Company_Profile", "category_id", "dbo.DB_Category");
DropForeignKey("dbo.DB_Category_Translation", "category_id", "dbo.DB_Category");
DropForeignKey("dbo.AspNetUsers", "DB_User_Type_user_type_id", "dbo.DB_User_Type");
DropForeignKey("dbo.DB_User_Type_Translation", "user_type_id", "dbo.DB_User_Type");
DropIndex("dbo.DB_Company_Profile", new[] { "DB_Category_Id" });
DropIndex("dbo.DB_Category_Translation", new[] { "DB_Category_Id" });
DropIndex("dbo.DB_User_Type_Translation", new[] { "DB_User_Type_Id" });
DropColumn("dbo.DB_Company_Profile", "category_id");
DropColumn("dbo.DB_Category_Translation", "category_id");
DropColumn("dbo.DB_User_Type_Translation", "user_type_id");
RenameColumn(table: "dbo.AspNetUsers", name: "DB_User_Type_Id", newName: "DB_User_Type_user_type_id");
RenameColumn(table: "dbo.DB_Company_Profile", name: "DB_Category_Id", newName: "category_id");
RenameColumn(table: "dbo.DB_Category_Translation", name: "DB_Category_Id", newName: "category_id");
RenameColumn(table: "dbo.DB_User_Type_Translation", name: "DB_User_Type_Id", newName: "user_type_id");
RenameIndex(table: "dbo.AspNetUsers", name: "IX_DB_User_Type_Id", newName: "IX_DB_User_Type_user_type_id");
DropPrimaryKey("dbo.DB_Category");
DropPrimaryKey("dbo.DB_User_Type");
AddColumn("dbo.DB_Category", "category_id", c => c.Int(nullable: false, identity: true));
AddColumn("dbo.DB_User_Type", "user_type_id", c => c.Int(nullable: false, identity: true));
AlterColumn("dbo.DB_Company_Profile", "category_id", c => c.Int(nullable: false));
AlterColumn("dbo.DB_Category_Translation", "category_id", c => c.Int(nullable: false));
AlterColumn("dbo.DB_User_Type_Translation", "user_type_id", c => c.Int(nullable: false));
AddPrimaryKey("dbo.DB_Category", "category_id");
AddPrimaryKey("dbo.DB_User_Type", "user_type_id");
CreateIndex("dbo.DB_Company_Profile", "category_id");
CreateIndex("dbo.DB_Category_Translation", "category_id");
CreateIndex("dbo.DB_User_Type_Translation", "user_type_id");
AddForeignKey("dbo.DB_Company_Profile", "category_id", "dbo.DB_Category", "category_id", cascadeDelete: true);
AddForeignKey("dbo.DB_Category_Translation", "category_id", "dbo.DB_Category", "category_id", cascadeDelete: true);
AddForeignKey("dbo.DB_User_Type_Translation", "user_type_id", "dbo.DB_User_Type", "user_type_id", cascadeDelete: true);
AddForeignKey("dbo.AspNetUsers", "DB_User_Type_user_type_id", "dbo.DB_User_Type", "user_type_id");
DropColumn("dbo.DB_Category", "Id");
DropColumn("dbo.DB_User_Type", "Id");
}
如果你没有数据,最干净的方法是删除DB> – DarthVader
然后它说它不存在。我想我不得不做另外一些比更新数据库 – Marc
我想我可以针对另一个迁移,但我想知道是否有一些不那么复杂 – Marc