2014-06-22 4 views
0

우선, 나쁜 영어를 유감스럽게 생각합니다. 저는 EF 4.0이있는 대학 프로젝트에 참여하고 있습니다. 매번 컬렉션에서 엔티티 아이템을 삭제하고 싶습니다. "엔트리가 업데이트되는 동안 오류가 발생했습니다." 외래 키가 있습니다.항목을 업데이트하는 동안 오류가 발생했습니다.

저는 1 포인트의 담당자가있어서 이미지를 게시 할 수 없으므로 다이어그램을 보여줄 수 없습니다.

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(); 

    } 

내부 예외 {FK_Pais_Visita \ "참조 제약 \와 충돌 DELETE 문은"문디알 \ "테이블 \"dbo.Partido \ "열 'IdVisita'". 충돌 데이터베이스 \에서 발생했습니다 ". \ r \ n이 문구가 종료되었습니다. "} 고맙습니다 매우

답변

0

다른 테이블에서 계속 사용되고있는 레코드를 삭제하려고합니다. 그러므로 cascade delete을이 레코드 유형에 설정할 수 없으면 sametime 또는 이전에 다른 레코드를 제거해야합니다.

0

어느 당신은 당신은 당신의 마이그레이션 테이블에서 삭제 계단식하거나 (당신이 Visita (테이블 이름으로 교체)

로 불리는 일부 테이블이 있다고 믿는 것처럼 그들에게

뭔가를 삭제하는 엔티티를로드 할 수 있습니다

Pais PaisABorrar = db.Paises 
        .Include(p => p.Visita) 
        .Single(p => p.Id == IdPaisABorrar); 

성명은 모든 관련 항목을로드합니다 (P => p.Visita)를 포함하고 그들은 전화 db.Paises.Remove (PaisABorrar)에 의해 삭제 될 것이다

참고 :이 당신을 도왔다 경우 그다음 잊어 버리지 마라. 투표에 응답하여 답변으로 표시하십시오.

관련 문제