在不删除引用对象的情况下删除具有外键关系的实体

时间:2018-05-23 19:33:28

标签: asp.net-mvc entity-framework reference foreign-keys

我的问题在于通用"删除"在BidController中我得到了典型的错误:

  

DELETE语句与REFERENCE约束冲突" fkw _...."。冲突发生在数据库表...,列....   该语句已终止。

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

尝试将关系视为可选。这样,您的商品可以包含空外键。

如果您使用数据库第一种方法:

CREATE TABLE Item(
    ItemId INT PRIMARY KEY,
    ActiveBidId INT NULL FOREIGN KEY REFERENCES Bid(BidId)
    // ...
  );

如果您已经创建了表格,那么您可以按如下方式更改表格:

ALTER TABLE Item 
DROP CONSTRAINT FK_ActiveBidConstraint -- The name of your  constraint
GO

ALTER TABLE Item
ADD CONSTRAINT FK_ActiveBidConstraint FOREIGN KEY (ActiveBidId) -- The name of your  constraint
    REFERENCES Bid(BidId);

答案 1 :(得分:1)

尝试使用空值更新ActiveBidId,然后删除出价。这样就可以打破项目和出价之间的链接,而不是从出价中删除数据。

答案 2 :(得分:0)

显然我可以将GUID设置为null,所以我发布了一个简单的答案。

在我的BidController中,我更新了我的代码:

        item = null;

这会删除对出价的引用,因此可以免费删除出价!