禁用Code First EF的外键约束

6
如果我想在关系中禁用外键约束,如果我正在编辑数据库,我会执行以下操作:
但是,我希望以“Code First”方法为基础,在我的迁移文件、配置或模型中通过注释的形式禁用关系中的外键约束。到目前为止,我尝试了使用“.WillCascadeOnDelete(false)”来禁用外键约束,但并没有成功。我还注意到,EF不在意我从数据库中禁用外键约束,但在我看来,这将违反“Code First”方法。因此,非常感谢任何建议。
1个回答

4

我找到的一个解决方案是运行自己的自定义迁移,如下:

Sql("ALTER TABLE dbo.ProductItems NOCHECK CONSTRAINT [FK_dbo.ProductItems_dbo.Services_ProductItemTypeId]");

不知道是否这是唯一的方法,仍然开放接受建议。


这对你真的有效吗?我尝试了一下,当我尝试删除主表的主键时,约束仍然生效。我必须先删除外键。在我的情况下,外键具有级联删除,如果相关的话。 - angularsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接