我有以下代码:
[HttpPost]
public ActionResult Eliminar(Usuario usuario)
{
db.Usuarios.Attach(usuario);
usuario.Transacciones.ToList().ForEach(t => db.Transacciones.Remove(t));
usuario.Eventos.ToList().ForEach(e => db.Eventos.Remove(e));
db.Usuarios.Remove(usuario);
db.SaveChanges();
return RedirectToAction("Index");
}
我不能让它工作。我知道要删除一个实体,您首先必须附加它,但它不适用于具有关系的实体。我也尝试做一个foreach
循环,并在删除它们之前附加每个Transaccion
和Evento
实体,但它也不起作用。
这是InnerException
包含的错误:
System.Data.SqlClient.SqlException: The DELETE statement conflicted with the REFERENCE constraint "FK_TR_US". The conflict occurred in database "bd_dm", table "dbo.Transacciones", column 'idUsuario'. The statement has been terminated.
我知道这意味着什么,但我不知道如何使代码工作。我需要先删除所有Transacciones
与Eventos
相关的Usuario
,才能删除Usuario
.