我们有一个数据库,它正在创建多个级联路径错误。我理解这意味着什么和正在发生什么,但我想知道最好的方法,因为我们必须删除一些OnDelete级联选项。
这是我们的桌子结构:
SCHOOL
- SchoolId
- Name
- ....
STUDENT
- StudentId
- SchoolId
- Name
- ...
COURSE
- CourseId
- SchoolId
- Name
STUDENT-COURSE
- StudentId
- CourseId
- ....所以我们有一个循环,因为当删除一所学校时,实体学生课程将从两个不同的方面被删除,创建这个循环。
我知道这里发生了什么:
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); 这里的问题是什么是最好的办法。
谢谢。
发布于 2016-12-07 08:26:47
我会删除从学校删除梯级,并留下其他的,当删除一所学校增加一些逻辑删除相关的学生,课程(但他保持了一致性删除在较低级别)。如果从学生中删除删除级联,则需要手动添加删除逻辑,以便他们首先清理相关的学生课程,并且在某种程度上与课程删除不一致(层次级别在删除逻辑上是不一致的)。
https://stackoverflow.com/questions/41012293
复制相似问题