以前也是常常遇到这个问题,但好在每次建立的实体很少,很容易就能找到是哪一个外键致使级联循环删除问题后端
以前都是这么处理,由于建立的实体也很少,因此还处理得来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; }