首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架代码第一周期或多级联路径

实体框架代码第一周期或多级联路径
EN

Stack Overflow用户
提问于 2016-12-07 08:09:21
回答 1查看 169关注 0票数 0

我们有一个数据库,它正在创建多个级联路径错误。我理解这意味着什么和正在发生什么,但我想知道最好的方法,因为我们必须删除一些OnDelete级联选项。

这是我们的桌子结构:

代码语言:javascript
复制
SCHOOL
- SchoolId  
- Name
- ....

STUDENT
- StudentId
- SchoolId
- Name
- ...

COURSE
- CourseId
- SchoolId
- Name

STUDENT-COURSE
- StudentId
- CourseId
- ....
  • 删除学校时,学生中的SchoolId FK删除所有相关的学生
  • 课程中的SchoolId FK删除删除学校时与级联相关的所有课程。
  • “学生课程”中的StudentId FK删除删除学生时以级联形式出现的所有学生课程
  • “学生课程”中的CourseId FK删除删除课程时以级联形式出现的所有学生课程

所以我们有一个循环,因为当删除一所学校时,实体学生课程将从两个不同的方面被删除,创建这个循环。

我知道这里发生了什么:

代码语言:javascript
复制
HasMany(p => p.Students)
   .WithRequired(p => p.School)
   .HasForeignKey(p => p.SchoolId)
   .WillCascadeOnDelete(true);  

我知道我能做到

代码语言:javascript
复制
HasMany(p => p.Students)
    .WithRequired(p => p.School)
    .HasForeignKey(p => p.SchoolId)
    .WillCascadeOnDelete(false); 

这里的问题是什么是最好的办法。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-07 08:26:47

我会删除从学校删除梯级,并留下其他的,当删除一所学校增加一些逻辑删除相关的学生,课程(但他保持了一致性删除在较低级别)。如果从学生中删除删除级联,则需要手动添加删除逻辑,以便他们首先清理相关的学生课程,并且在某种程度上与课程删除不一致(层次级别在删除逻辑上是不一致的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41012293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档