c# - 先应用迁移实体框架代码后更改外键约束
问题描述
我需要向外键添加“级联删除”约束。
创建外键的迁移是最后一次。
CreateTable(
"dbo.DependentTable",
c => new
{
ID = c.Int(nullable: false),
SomeValue = c.Double(nullable: false),
})
.PrimaryKey(t => t.ID)
.ForeignKey("dbo.IndependentTable", t => t.IndependentTableId)
.Index(t => t.ID);
我只需要更改此行并重新“更新数据库”。
.ForeignKey("dbo.IndependentTable", t => t.IndependentTableId, cascadeDelete: true)
我试图做的事情:
Down()
在方法中注释代码以避免丢失表和其中的数据。- 回滚到以前的迁移。
- 改变线路。
- 跑
update-database
但我不断收到错误
已经有一个名为“dbo.DependentTable”的对象
生成新的迁移
-IgnoreChanges
调用这些方法:
DropForeignKey("dbo.DependentTable", "ID"); AddForeignKey("dbo.DependentTable","ID","IndependentTable",cascadeDelete: true)
跑
Update-database
这也导致了错误
数据库中已经有一个名为“FK_dbo.DependentTable_dbo.IndependentTable_Id”的对象。无法创建约束或索引。请参阅以前的错误。
有没有办法在不丢失任何数据的情况下将级联删除添加到外键?
解决方案
推荐阅读
- r - 启用 observeEvent 来触发 eventReactive 事件
- vue.js - 在子路径级别的 Traefik 中设置 2 个 Vue.js 应用程序时出错
- r - R中的数据框拆分或重构
- github - Github 按更改的最大文件数对 PR 排序
- .net-core - 无法让应用程序在电视上运行
- python - 使用 ubuntu-latest 在 github 运行器中基于 Python 的彩色日志记录
- typescript - Slack Web API - 拉取特定消息
- python - OpenCV warpAffine 总是返回 0 矩阵
- kubernetes - Cert-Manager dns01 质询订单待处理
- reactjs - 在 React 中为 useContext 使用条件的最佳方法?