之前也是經常遇到這個問題,但好在每次創建的實體不多,很容易就能找到是哪個外鍵導致級聯循環刪除問題
之前都是這么處理,因為創建的實體也不多,所以還處理得來

但最近跟別人合作寫后端,別人寫了好多實體,我一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; }
