在数据库中删除对象时发生异常

本文关键字:异常 对象 数据库 删除 | 更新日期: 2023-09-27 18:15:48

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

类型为"System.Data.Entity.Infrastructure"的异常。DbUpdateException'在EntityFramework.dll中发生,但未在用户代码中处理'

这是一个innerException消息

InnerException {" DELETE语句与REFERENCE约束冲突'"FK_dbo.OfferImages_dbo.Offers_Offer_Id'"。冲突发生在数据库"aspnet-LivrETS-20160629111902",表"dbo"。OfferImages'",列'Offer_Id'。'r'n语句已终止。"}系统。异常{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),它带有表。

谢谢

在数据库中删除对象时发生异常

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

但在我看来,你应该添加一个列称为ActiveFlag(位),删除列,你只需要改变ActiveFlag为假。