删除数据库中的对象时出现异常

时间:2016-11-01 02:13:05

标签: c# asp.net sql-server asp.net-mvc entity-framework

首先,对不起我的英语。这不是我的第一个语言。我试图删除数据库中的数据但是在调用SaveCahnges时收到异常。

  

类型' System.Data.Entity.Infrastructure.DbUpdateException'的例外情况发生在EntityFramework.dll中但未在用户代码中处理

这是一个内部异常消息

  

InnerException {" DELETE语句与REFERENCE约束冲突\" FK_dbo.OfferImages_dbo.Offers_Offer_Id \"。冲突发生在数据库\" aspnet-LivrETS-20160629111902 \",table \" dbo.OfferImages \",column' Offer_Id'。\ r \ n语句已被终止。"} System.Exception {System.Data.SqlClient.SqlException}

这是我的存储库

public void DeleteOffer(string[] Ids)
    {
        foreach (string Id in Ids)
        {
            Offer offer = GetOfferBy(Id);
            _db.Offers.Remove(offer);
        }

        _db.SaveChanges();
    }

我使用AJAX从我的javascript代码中调用此函数。

我的迁移已更新但是,我的数据库中的表格不在我的模型中,因为我已经安装了随表附带的依赖项(hangFire)。

谢谢

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试删除Offer表中的一行,但OfferId是另一个表的外键(根据例外情况,它是Offer Images)。 要从Offer表中删除行,您必须先删除OfferImages中包含该offerId的所有行。

但在我看来,你应该添加一个名为ActiveFlag(bit)的列来删除列,你只需要将ActiveFlag更改为false。