实体框架 - 代码优先迁移:现有约束

时间:2017-08-11 16:55:04

标签: sql-server entity-framework

我有一个应用程序,我在没有迁移的情况下使用Code First,但现在我想切换到Code First with Migrations。运行迁移时,sql脚本会检查遵循

模式的约束
FK_dbo.[ChildTableName]_dbo.[ParentTableName]_[ChildColumnName] 

它将删除这些约束并在完成所需的更改后重新添加它们。我遇到的问题是我有实体框架没有检测到的现有约束,所以我最终会遇到重复约束。

例如,我的数据库最初有一个名为FK_UserConfig_User_User_ID的约束,现在实体框架创建了一个名为FK_dbo.UserConfig_dbo.User_User_ID的重复约束。有没有办法让Entity Framework检测现有约束?

1 个答案:

答案 0 :(得分:0)

您可以在Up()代码中指定所需的名称。所以你看到了:

CreateTable("ParentTable"
...
.ForeignKey("ChildTable", t => t.ParentId, cascadeDelete: true)

还有另一个名称为

的覆盖
.ForeignKey("ChildTable", t => t.ParentId, cascadeDelete: true, name: "FK_UserConfig_User_User_ID")