首先,抱歉英语不好。 我正在使用EF 4.0开展大学项目。每次我想从集合中删除实体项时,我都会收到错误:“条目更新时发生错误。” 我有外键。
我无法发布图片,因为我只有1点代表,所以我无法向你展示de diagramas。
private void Elimina_Pais_btn_Click(object sender, RoutedEventArgs e)
{
int IdPaisABorrar = ((Pais)Tabla_Paises_DataGrid.SelectedItem).Id;
MundialEntities db = new MundialEntities();
Pais PaisABorrar = db.Paises.Single(p => p.Id == IdPaisABorrar);
if(PaisABorrar != null)
db.Paises.Remove(PaisABorrar);
db.SaveChanges();
UpdatePaises();
}
内部异常{“DELETE语句与REFERENCE约束冲突\”FK_Pais_Visita \“。冲突发生在数据库\”Mundial \“,table \”dbo.Partido \“,列'IdVisita'。\ r \ n声明已被终止。“} 非常感谢你
答案 0 :(得分:0)
您正在尝试删除(删除)仍在另一个表中使用的记录。因此,除非可以在此记录类型上设置cascade delete,否则您需要在同一时间或之前删除其他记录。
答案 1 :(得分:0)
您可以在迁移表中级联删除,也可以加载实体以删除它们
类似的东西(相信你有一些名为Visita的桌子(用你的桌子名称替换它)
Pais PaisABorrar = db.Paises
.Include(p => p.Visita)
.Single(p => p.Id == IdPaisABorrar);
语句Include(p => p.Visita)将加载所有相关条目,然后通过调用db.Paises.Remove(PaisABorrar)删除它们;
注意:如果这对你有所帮助,那就不要忘记将其投票并将其标记为答案