我有一个应用程序,我在没有迁移的情况下使用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检测现有约束?
答案 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")