从网格视图中删除选定的实体对象,其中外键表阻止它

本文关键字:实体 删除 视图 网格 对象 | 更新日期: 2023-09-27 18:32:39

这些是我的SQL Server数据库中EmployeeEmployeeTicketTicket的表:

http://i62.tinypic.com/709q50.png

这就是它在我的实体框架模型中看到的方式

http://i57.tinypic.com/30w9fup.png

如您所见,我的外键表变成了导航属性,没关系,我找到了使用它的方法。

// Use a LINQ expression to find the selected product.
int selectedID = (int)GridViewTicketHistory.SelectedDataKey.Value;
var matches = from p in entities.Employees
              where p.ID == selectedID
              select p;
// Execute the query and return the entity object.
Employee emp = matches.Single();
// Delete the entity object.
entities.Employees.DeleteObject(emp);
// Commit the changes back to the database.
entities.SaveChanges();
editCustomerTicket();

问题是我收到一个错误:

DELETE 语句与约束 REFERENCE "FK_EmployeeTicket_Employee" 冲突。冲突发生在表"dbo.员工票证",列"ID"数据库"跟踪用户">

这意味着我无法从Employee中删除 ID,我认为我应该首先删除外键表中的 ID。我怎样才能做到这一点?或者我可以做任何简单的更改来摆脱此错误?

从网格视图中删除选定的实体对象,其中外键表阻止它

您可以尝试将 EmployeeTicket ID 设置为允许 NULL 取决于如何设置列属性

欲了解更多信息,请查看此处