以前也是常常遇到這個問題,但好在每次建立的實體很少,很容易就能找到是哪一個外鍵致使級聯循環刪除問題後端
以前都是這麼處理,由於建立的實體也很少,因此還處理得來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; }