在数据库中删除对象时发生异常
本文关键字:异常 对象 数据库 删除 | 更新日期: 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为假。