EFCore的外键级联删除导致的【可能会导致循环或多重级联路径】
程序员文章站
2024-02-07 09:05:52
之前也是经常遇到这个问题,但好在每次创建的实体不多,很容易就能找到是哪个外键导致级联循环删除问题 之前都是这么处理,因为创建的实体也不多,所以还处理得来 但最近跟别人合作写后端,别人写了好多实体,我一Update-Database,傻了,我得一个个地处理。其实我也不太喜欢这个级联删除,是否删除关联实 ......
之前也是经常遇到这个问题,但好在每次创建的实体不多,很容易就能找到是哪个外键导致级联循环删除问题
之前都是这么处理,因为创建的实体也不多,所以还处理得来
但最近跟别人合作写后端,别人写了好多实体,我一update-database,傻了,我得一个个地处理。
其实我也不太喜欢这个级联删除,是否删除关联实体应该由我自己来把握。那么可以这样处理,这样所以的外键删除关联都变成restrict了
var foreignkeys = modelbuilder.model.getentitytypes().selectmany(e => e.getforeignkeys()).where(fk => fk.deletebehavior == deletebehavior.cascade); foreach (var fk in foreignkeys) { fk.deletebehavior = deletebehavior.restrict; }
推荐阅读
-
EFCore的外键级联删除导致的【可能会导致循环或多重级联路径】
-
EFCore的外键级联删除导致的【可能会导致循环或多重级联路径】
-
关于EF中出现FOREIGNKEY约束可能会导致循环或多重级联路径的问题
-
可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约
-
可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约
-
关于EF中出现FOREIGNKEY约束可能会导致循环或多重级联路径的问题