8. EF Core 外键的删除模式

一、在删除有其它表的外键引用的数据有一下几种方式

1、不执行任何操作(EF Core默认Restrict):如果数据被其其他表外键依赖,拒绝删除

2、级联(Cascade):删除外键表中相应的所有行

3、设置NULL(SetNull):将表的外键字段值设置为空值NULL

4、设置默认值:如果外键表的所有外键列均已定义默认值,则将该列设置为默认值

级联删除例子

modelBuilder.Entity<Post>().HasOne(p => p.Blog).WithMany(b =>
b.Posts).OnDelete(DeleteBehavior.Cascade);

原文地址:https://www.cnblogs.com/Adoni/p/12301957.html

时间: 2024-08-01 13:06:50

8. EF Core 外键的删除模式的相关文章

Oracle外键级联删除和级联更新

1 级联删除 Oracle在外键的删除上有NO ACTION(类似RESTRICT).CASCADE和SET NULL三种行为. 下面以学生-班级为例说明不同情况下的外键删除,学生属于班级,班级的主键是学生的外键. -- 班级表 CRATE TABLE TB_CLASS ( ID NUMBER NOT NULL, --班级主键 NAME VARCHAR2(50), --班级名称 CONSTRAINT PK_TB_CLASS PRIMARY KEY (ID) ); -- 学生表 CREATE TA

[Django]orm中的外键级联删除

这里的系统环境为django1.6   os为win7 今天有个需求说的是添加一个地区表,然后用外键和几个非常重要的实体表来做关联(地区表作为其他表的外键),写完地区的删除操作的时候,测试了下代码,功能正常.可是眼睛移动到控制台输出的时候傻了 connexesql ->DELETE FROM `mngm_device` WHERE `mngm_device`.`area_id` IN (%s, %s, %s) connexesql ->DELETE FROM `ad_ad` WHERE `ad

iOS sqlite3外键级联删除问题解决

最近学习使用数据库,以前上学的时候也学过外键和级联删除. NSString *sql=@"CREATE TABLE PlanModel (Id integer,name text,constraint plan_key primary key (Id))"; NSString *sql=@"CREATE TABLE SystemModel (Id integer,planId integer,name text,foreign key (planId) references

python django中的orm外键级联删除

今天添加了一个路由表,路由表做外键,然后添加了几个组,路由表为组的外键,当我使用删除功能对路由表进行删除时,竞然将我的组也相当的删除了:尽管这是测试,但放到生产环境中还是会发生意外的:这个问题要解决: 在网上查了一下资料,问题主要是django orm的field字段有关: routemgr = models.ForeignKey('Routemgr',default=1,blank=True,null=True,on_delete=models.SET_NULL) 主要意思就是把Routemg

基于EF的外键的查询 使用【ForeignKey(“ SupplierId”】特性

//实体模型类: /// 供应商id /// </summary> public Guid? SupplierId { get; set; } /// <summary> /// SupplierId—是该表的外键 是DB_Supplier表的主键 /// DB_Supplier 表名 /// </summary> [ForeignKey("SupplierId")] public virtual DB_Supplier Supplier { get

Oracle删除表时候有外键 不能删除

SELECT    A .constraint_name,    A .table_name,    b.constraint_nameFROM    user_constraints A,    user_constraints bWHERE    A .constraint_type = 'R'AND b.constraint_type = 'P'AND A .r_constraint_name = b.constraint_nameAND A .constraint_name = UPPE

解决外键无法删除问题

SELECT  fk.name ,        fk.object_id ,        OBJECT_NAME(fk.parent_object_id) AS referenceTableNameFROM    sys.foreign_keys AS fk        JOIN sys.objects AS o ON fk.referenced_object_id = o.object_idWHERE   o.name = 'AppTag'; SELECT     'ALTER TABL

EF有外键的查询

modelBuilder.Entity<ActionMenu>().ToTable("ActionMenu"); modelBuilder.Entity<ActionMenu>().HasKey(s => s.Id); modelBuilder.Entity<ActionMenu>().Property(s => s.MenuName).IsRequired().HasMaxLength(50); modelBuilder.Entity&

SQLServer外键查询删除信息

SELECT FK.NAME,FK.OBJECT_ID,OBJECT_NAME(FK.PARENT_OBJECT_ID) AS REFERENCETABLENAMEFROM SYS.FOREIGN_KEYS AS FKJOIN SYS.OBJECTS AS O ON FK.REFERENCED_OBJECT_ID=O.OBJECT_IDWHERE O.NAME = 'Foreign_Key_Name' ALTER TABLE TableName  DROP CONSTRAINT FK_Name