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;
}
相關文章
相關標籤/搜索