【发布时间】:2018-08-30 18:48:01
【问题描述】:
当我单击删除按钮时,出现此错误。
SqlException:DELETE 语句与 REFERENCE 约束“FK_Reserva_Quarto”冲突。冲突发生在数据库“GestãoHotel”、表“dbo.Reserva”、列“ID_Quarto”中。
有人知道原因吗?
控制器:
// GET: Quartos/Delete/5
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Quarto quarto = db.Quarto.Find(id);
if (quarto == null)
{
return HttpNotFound();
}
return View(quarto);
}
// POST: Quartos/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Quarto quarto = db.Quarto.Find(id);
db.Quarto.Remove(quarto);
db.SaveChanges();
return RedirectToAction("Index");
}
查看:
<div class="table-responsive panel">
<table class="table">
<tbody>
<tr>
<td class="text-success"><i class="fa fa-list-ol"></i> Nº Quarto</td>
<td>@Model.ID_Quarto</td>
</tr>
<tr>
<td class="text-success"><i class="fa fa-bed"></i> Tipo de Quarto</td>
<td>@Model.TipoQuarto</td>
</tr>
</tbody>
</table>
</div>
<table class="table">
<tbody>
<tr>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<td class="text-center">
<button type="submit" class="btn btn-danger btn-circle btn-xl" data-toggle="tooltip" title="Eliminar"> <i class="glyphicon glyphicon-ok"></i></button>
<button type="button" onclick="location.href='@Url.Action("Index", "Quartos")'" class="btn btn-primary btn-circle btn-xl" data-toggle="tooltip" title="Voltar"><i class="glyphicon glyphicon-arrow-left"></i></button>
</td>
}
</tr>
</tbody>
</table>
连接字符串:
<connectionStrings>
<add name="Hotel"
connectionString="Data Source=DESKTOP-BC284NS\SQLEXPRESS;initial catalog=GestãoHotel;integrated security=True;"
providerName="System.Data.EntityClient" />
<add name="HotelEntities"
connectionString="metadata=res://*/Models.BaseDados.GestãoHotel.csdl|res://*/Models.BaseDados.GestãoHotel.ssdl|res://*/Models.BaseDados.GestãoHotel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=DESKTOP-BC284NS\SQLEXPRESS;initial catalog=GestãoHotel;integrated security=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
【问题讨论】:
-
当你收到错误时,将鼠标悬停在 id 上并检查 id 是否有效
-
检查 fk
FK_Reserva_Quarto的迁移类。您可能需要从级联更改OnDelete -
既然是数据库问题,请务必提及您正在使用的数据库以及 EF 提供程序
-
@NevilleNazerane 感谢您尝试帮助我。我已经编辑了帖子并将我的连接连接到数据库
-
@Navas - 就像 Neville 所说,你只是有一个外键约束阻止你进行级联删除。