Tengo dos tablas Employee
(n) y Store
(1), que tienen una relación n: 1.Entity Framework la instrucción delete está en conflicto con la restricción de referencia
Employee
tiene la clave externa idStore
que es la clave principal de Store
.
Aquí es cómo tratar de eliminar una fila de Employee
:
public void deleteEmployee(int idEmployee)
{
MyEntities pe = new MyEntities();
try
{
var firstQuery = from e in pe.Employees
where e.idEmployee == idEmployee
select e;
string findIdStore = firstQuery.First().StoreReference.EntityKey.EntityKeyValues[0].Value.ToString();
int idStore = Int32.Parse(findIdStore);
Store r = pe.Stores.First(c => c.idStore == idStore);
r.Employees.Remove(firstQuery.First());
pe.DeleteObject(firstQuery.First());
pe.SaveChanges();
}
catch (Exception ex)
{
return;
}
}
Y aún así, me sale error que la instrucción de eliminación en conflicto con la restricción de referencia.
El error completo está aquí:
La instrucción DELETE en conflicto con la restricción REFERENCIA "FK_Bill_Employee". El conflicto se produjo en la base de datos "myDatabase", en la tabla "dbo.Bill", en la columna "idEmployeeMember".
La declaración ha finalizado.
No, no puedo. Dice el mismo error. –
Nada. Es una tabla simple cuya clave principal no es nula. Sin embargo, si intento eliminar al empleado con idStore = 1, entonces, si en la tabla Store solo hay una fila con idStore = 1, debería eliminarse. Creo que es por eso que este error está sucediendo. –
{"La instrucción DELETE entró en conflicto con la restricción de REFERENCIA \" FK_Bill_Employee \ ". El conflicto ocurrió en la base de datos \" myDatabase \ ", table \" dbo.Bill \ ", column 'idEmployeeMember'. \ R \ nLa declaración ha sido terminado. "} –