我有两个表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;
}
}
Run Code Online (Sandbox Code Playgroud)
而且,我得到的错误是delete语句与引用约束冲突.
完整的错误在这里:
DELETE语句与REFERENCE约束"FK_Bill_Employee"冲突.冲突发生在数据库"myDatabase",表"dbo.Bill",列"idEmployeeMember"中.
该语句已终止.
你不能找到并删除该员工吗?
public void deleteEmployee(int idEmployee)
{
using(MyEntities pe = new MyEntities())
{
var emmployeeToDelete = pe.Employees.FirstOrDefault(e => e.idEmployee == idEmployee);
if(employeeToDelete != null)
{
pe.DeleteObject(employeeToDelete);
pe.SaveChanges();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为你不需要做更多的事情,真的......
下次当您加载该员工所属的这个特定商店时,该员工将不再位于该商店的员工集合中 - 无需进行任何混乱的手动删除或任何操作......
| 归档时间: |
|
| 查看次数: |
9824 次 |
| 最近记录: |