2014-05-15 2 views
0

"사이클 또는 여러 개의 캐스케이드 경로의 원인이 'AttendanceSheets'테이블에 FOREIGN KEY 제약 조건 'FK_dbo.AttendanceSheets_dbo.AdulLiteracyTeachers_ALTName'를 소개합니다. ON 지정 NO ACTION 또는 ON의 UPDATE NO ACTION 삭제하지 않거나 수정 다른 FOREIGN KEY 제약. \ 연구 \ nCould 제약 조건을 만들 수 없습니다. 이전 오류를 참조하십시오. "}외래 키 계단식 경로

public class AttendanceSheet 
    { 
     [Required] 
     [Key] 
     public int Attendanceid { get; set; } 
     [DisplayName("District")] 
     [ForeignKey("District")] 
     public int DistID { get; set; } 

     public virtual District District { get; set; } 
     [DisplayName("District")] 

     [ForeignKey("AdulLiteracyTeachers")] 
     public int ALTName { get; set; } 
     public virtual AdulLiteracyTeachers AdulLiteracyTeachers { get; set; } 

     [DisplayName("Month")] 
     public int Month { get; set; } 
     [DisplayName("Number Of Days")] 
     public int Attandence { get; set; } 
    } 

내가 엔티티 프레임 워크를 사용하여 컨트롤러를 추가하고있는 동안 위의 오류를 얻기. 목적은 교사의 전체 목록에 충원을 원합니다. 교사는 당신이 당신의 DbSets가 정의한 경우 아래

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); 

} 

추가 데이터 컨텍스트 파일에서

답변

0

의 이름을 위해 나는 foriegn 키를 사용하고 있습니다.

외부 키를 통해 엔터티에서 삭제할 경로가 여러 개있을 때 이런 현상이 발생합니다. 관련 EntityD을 삭제하는 여러 경로가 있습니다

EntityA - EntityB - EntityC - EntityD 
EntityA - EntityC - EntityD 
EntityA - EntityD 

예를 들어

, SQL 서버는 이것을 허용하지 않습니다.