首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DeleteBehavior.NoAction和DeleteBehavior.Restrict在EntityFramework内核中有什么不同?

问DeleteBehavior.NoAction和DeleteBehavior.Restrict在EntityFramework内核中有什么不同?
EN

Stack Overflow用户
提问于 2020-10-08 09:29:25
回答 2查看 3.7K关注 0票数 14

我的代码中有这样的配置:

代码语言:javascript
复制
builder.HasMany(c => c.Libs)
       .WithOne(x=>x.Book)
       .HasForeignKey(x=>x.BookId)
       .OnDelete(DeleteBehavior.NoAction);  <<-------- Here

我的问题是,NoAction和Restrict值之间的有什么不同?

我看过Microsoft文档和对它们的描述是一样的!

​

​

EN

回答 2

Stack Overflow用户

发布于 2021-06-22 08:54:01

这取决于数据库的实现。

在MySQL和MySQL中,没有区别.

在PostgreSQL中,有一个区别:限制和不采取行动的区别

票数 5
EN

Stack Overflow用户

发布于 2020-10-08 19:07:29

delete行为定义了在PK关系中的父实体被删除时将采取的操作。在这种情况下,父实体是Book,而子实体是Libs,具有1:多关系。

NoAction:在本例中,当从数据库中删除图书表中的一行时,Libs表中具有与已删除BookId相同的BookId的所有行都将转换为null。请注意,此方法不会从Libs表中删除任何项,并且会使它们成为孤儿。

限制:在这种情况下,只有当没有与同一个BookId相关联的Libs时,才能从数据库中删除BookId中的一行。请注意,只有在删除了所有关联的Libs之后,才能删除Book行。

级联:在本例中,如果删除图书行,将自动删除图书中所有相关的Libs行。

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

https://stackoverflow.com/questions/64259612

复制
相关文章

相似问题

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