2014-02-26 42 views
5

如果我想禁用关系的外键约束。我会做以下,如果我是在数据库编辑:禁用外键约束代码优先EF

enter image description here

但我想上的关系的外键约束的禁用我的迁移文件或在我配置或在我模型以“代码优先”方法的注释形式出现。到目前为止,我只想到了.WillCascadeOnDelete(false)。我还注意到,EF不关心我是否可以自由地从数据库中禁用外键约束,但这在我看来违反了代码优先的方法。 因此,任何建议是高度赞赏。

回答

4

一个解决方案,我发现是运行像我自己的自定义迁移:

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

不知道这是否是唯一的出路。仍然接受建议。

+0

这实际上适合你吗?我试过了,当我尝试删除主体表的主键时,约束仍然有效。我必须先放弃FK。 FK在我的情况下有级联删除,如果这是相关的。 – angularsen