根据级联删除,我写下面的代码,但有一个错误: 更新条目时发生错误。有关详细信息,请参阅内部异常。
using (doctorEntities de = new doctorEntities())
{
var delete_base_print = (from Table_infobase_print tip in de.Table_infobase_print
where tip.ID == ((Doctor.Table_infobase_print)(datagrid_table_infobase_print.SelectedItem)).ID
select tip).First();
de.DeleteObject(delete_base_print);
de.SaveChanges();
}
<Association Name="FK_Table_infodetail_print_Table_infobase_print">
<End Role="Table_infobase_print" Type="doctorModel.Table_infobase_print" Multiplicity="1">
<OnDelete Action="Cascade" />
</End>
<End Role="Table_infodetail_print" Type="doctorModel.Table_infodetail_print" Multiplicity="*" >
</End>
<ReferentialConstraint>
<Principal Role="Table_infobase_print">
<PropertyRef Name="ID" />
</Principal>
<Dependent Role="Table_infodetail_print">
<PropertyRef Name="ID_infobase" />
</Dependent>
</ReferentialConstraint>
</Association>
答案 0 :(得分:2)
<OnDelete Action="Cascade" />
这仅涵盖对象上下文中的已加载实体(它将级联已删除的相关实体),但不包括数据库本身。确保您已在相应的表格上为数据库设置了级联删除约束。
修改强>
要在SQL Server中设置级联删除,请将外键关系的删除规则设置为级联。对于这个开放的SQL Server Management Studio,打开有问题的表进行设计并显示外键关系。在 INSERT和UPDATE规范中将级联设置为删除规则。