我有两个表Employee
(n)和Store
(1),它们之间存在n:1的关系。
Employee
有外键idStore
,它是从Store
中获取的主键。
这里是我尝试从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;
}
}
仍然会出现错误,表示删除语句与引用约束冲突。
完整的错误信息如下:
删除语句与参照约束“FK_Bill_Employee”冲突,在数据库“myDatabase”的表“dbo.Bill”的列'idEmployeeMember'中发生冲突。
该语句已终止。
Employee
和Store
之间 - 而是有一张名为Bill
的表,其具有一个名为idEmployeeMember
的列仍然参照了你正试图删除的员工。 - marc_s