여러 개의 계단식 경로 오류를 만드는 데이터베이스가 있습니다. 그 의미와 현재 상황에 대해 이해하고 있지만, OnDelete Cascade 옵션 중 일부를 제거해야하므로 최선의 방법을 알고 싶습니다.Entity Framework 코드 첫 번째 사이클 또는 여러 개의 계단식 경로
이 우리의 테이블 구조입니다 :
SCHOOL
- SchoolId
- Name
- ....
STUDENT
- StudentId
- SchoolId
- Name
- ...
COURSE
- CourseId
- SchoolId
- Name
STUDENT-COURSE
- StudentId
- CourseId
- ....
-
학생의
- SchoolId FK는
- SchoolId FK이 과정에서 삭제할 때 캐스케이드에 관련된 모든 과정을 삭제하는 학교를 삭제할 때 캐스케이드에 관련된 모든 학생들을 삭제 학교
- StudentId FK는 학생 삭제시 계단식으로 관련된 모든 학생 과정을 삭제합니다.
- 학생 과정에서 FK를 삭제합니다. 수업을 삭제할 때 계단식으로 연결된 모든 학생과 과정
학교를 삭제할 때 엔티티 학생 과정이 두 가지 측면에서 삭제되어주기가 만들어지기 때문에주기가 있습니다.
HasMany(p => p.Students)
.WithRequired(p => p.School)
.HasForeignKey(p => p.SchoolId)
.WillCascadeOnDelete(true);
을 그리고 난 내가 할 수있는 알고 :
여기 무슨 이해
가HasMany(p => p.Students)
.WithRequired(p => p.School)
.HasForeignKey(p => p.SchoolId)
.WillCascadeOnDelete(false);
여기에 문제는 가장 좋은 방법이 될 것 인 것이다.
감사합니다.
코스보다 학생 수가 많으므로 연쇄 적으로 삭제 된 학생 + 학생 코스가 더 효율적입니다. –