使用实体框架 Cascade 和 ClientCascade 有啥区别?
Posted
技术标签:
【中文标题】使用实体框架 Cascade 和 ClientCascade 有啥区别?【英文标题】:Using Entity Framework what is the difference between Cascade and ClientCascade?使用实体框架 Cascade 和 ClientCascade 有什么区别? 【发布时间】:2022-01-18 06:49:00 【问题描述】:我正在学习 C# 以及如何使用实体框架。我相信我知道什么是 Cascade、Restrict、NoAction 和 SetNull 行为。
但还有其他带有前缀客户端的行为:
我想了解它们之间有什么区别,何时应该使用 ClientCascade 而不是 Cascade 或 ClientNoAction 而不是 NoAction。
【问题讨论】:
【参考方案1】:简短的回答是——当dependent/ref. entities
在内存中是loaded/cached
时,主实体上的cascade delete
动作fails
——因为CYCLIC ref. LOCK
。
ClientCascade
允许DBContext
删除实体,即使存在CYCLIC ref. LOCK
【讨论】:
以上是关于使用实体框架 Cascade 和 ClientCascade 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
Cascade保存子实体失败了JPA(Spring数据+ Hibernate)?
拥有实体实例 - Spring 和 Lombok 不再引用具有 cascade="all-delete-orphan" 的集合
Hibernate - 拥有的实体实例不再引用具有 cascade=”all-delete-orphan” 的集合