EFCore的外键级联删除致使的【可能会致使循环或多重级联路径】

以前也是常常遇到这个问题,但好在每次建立的实体很少,很容易就能找到是哪一个外键致使级联循环删除问题后端

 

以前都是这么处理,由于建立的实体也很少,因此还处理得来ui

但最近跟别人合做写后端,别人写了好多实体,我一Update-Database,傻了,我得一个个地处理。
其实我也不太喜欢这个级联删除,是否删除关联实体应该由我本身来把握。那么能够这样处理,这样因此的外键删除关联都变成Restrict了spa

var foreignKeys = modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()).Where(fk => fk.DeleteBehavior == DeleteBehavior.Cascade);
 foreach (var fk in foreignKeys)
{
    fk.DeleteBehavior = DeleteBehavior.Restrict;
}
相关文章
相关标签/搜索