更新条目时发生错误。

时间:2014-06-22 21:59:23

标签: sql entity-framework

首先,抱歉英语不好。 我正在使用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声明已被终止。“} 非常感谢你

2 个答案:

答案 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)删除它们;

注意:如果这对你有所帮助,那就不要忘记将其投票并将其标记为答案