首先,对不起我的英语。这不是我的第一个语言。我试图删除数据库中的数据但是在调用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)。
谢谢
答案 0 :(得分:0)
我认为您正在尝试删除Offer表中的一行,但OfferId是另一个表的外键(根据例外情况,它是Offer Images)。 要从Offer表中删除行,您必须先删除OfferImages中包含该offerId的所有行。
但在我看来,你应该添加一个名为ActiveFlag(bit)的列来删除列,你只需要将ActiveFlag更改为false。