Linq:删除具有主键-外键关系的表项

Linq:删除具有主键-外键关系的表项,linq,windows-phone,Linq,Windows Phone,我的Windows Phone应用程序具有表A,表B具有主键-外键关系。我需要从表A中删除一个条目。如何执行此操作 表A包含Shape类型的对象,并具有ShapeColor字段。表B包含ShapeColor类型的对象 当我尝试使用DeleteOnSubmit和SubmitChanges从表中删除形状时,抛出一个异常 “{”无法删除主键值,因为引用了此 键仍然存在。[外键约束名称=ShapeColor\u Shape]“} 您可以使用: context.DeleteOnSubmit(EntityA

我的Windows Phone应用程序具有表A,表B具有主键-外键关系。我需要从表A中删除一个条目。如何执行此操作

表A包含Shape类型的对象,并具有ShapeColor字段。表B包含ShapeColor类型的对象

当我尝试使用DeleteOnSubmit和SubmitChanges从表中删除形状时,抛出一个异常

“{”无法删除主键值,因为引用了此 键仍然存在。[外键约束名称=ShapeColor\u Shape]“}

您可以使用:

context.DeleteOnSubmit(EntityA.ReferenceToTableB)
context.DeleteOnSubmit(EntityA)

首先删除关系,然后删除实体,并将更改提交到数据库。

我不确定我是否理解答案。如果形状表中的Shape1和Shape2在ShapeColor表中都引用了颜色。我只想从形状表中删除Shape1,保持Shape2不变。听起来好像Shape2与Shape1相关,并且在这种情况下,您必须删除这两个实体,或者将shape2到shape1的指针重新映射到其他对象。在您的情况下,您只需要删除shape1,但获取的错误表明情况并非如此。您对某个对象的主键引用需要指向其他对象,或者需要删除外键实体..您能显示执行删除的代码吗?一定有什么东西触发了父项的删除。您监控了发出的SQL吗?
tableA
的删除是在
tableB
的删除之前还是之后?